python - 转置 Pandas 数据框的一部分

标签 python pandas dataframe

我有以下数据框:

>>> df
Out[15]: 
      group   type  amount  number
0   group_A    buy     100     123
1   group_A   view       0     111
2   group_B   view       0     222
3   group_A   view       0     222 

我想对数据进行透视,以便最终得到:

              type  group_A   group_B
0    amount    buy      100         0
1    number    buy        0       123
2    number   view      333       222

我该如何实现?

最佳答案

使用:

df=pd.DataFrame([['group_A','buy',100,123],['group_A','view',0,111],['group_B','view',0,222],['group_A','view',0,222]],columns=['group','type','amount','number'])

首先对索引求和并定位:

>>> df = df.groupby(['type','group']).sum().transpose().stack(0).reset_index()
>>> df
group level_0  type  group_A  group_B
0      amount   buy      100      NaN
1      amount  view        0        0
2      number   buy      123      NaN
3      number  view      333      222

删除全为零的行:

df = df[~((df['group_A']==0) | (df['group_B']==0))]

菲尔娜的:

>>> df.fillna(0)
group level_0  type  group_A  group_B
0      amount   buy      100        0
2      number   buy      123        0
3      number  view      333      222

这里的一些地方有点猜测,但它应该给你一个开始。

关于python - 转置 Pandas 数据框的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837084/

相关文章:

python - 如何避免从 python Pandas 数据框中的 msb 中删除 0

apache-spark - 如何用新列覆盖 Spark 数据框中的整个现有列?

python - 如何使用在不同多处理进程中创建的变量?

python - 如何使用 cocos python 查找图层宽度/高度

python - 如何在 Python 中使用 Google Shortener API

python - 如何通过阈值打破数据帧?

python - 根据多数规则删除重复项

python - 保留数据框中出现在列表中的行

python - 检查一系列数字是否位于 pandas 数据框中的两列之间

python - 使用 Pandas 进行数据分组