试图生成包含多个“值”列的数据透视表。我知道我可以使用aggfunc按我所希望的方式聚合值,但是如果我不想对两列求和或取平均值,而是希望一列求和,而另一列求平均值,该怎么办。那么,有没有可能用熊猫来做呢?
df = pd.DataFrame({
'A' : ['one', 'one', 'two', 'three'] * 6,
'B' : ['A', 'B', 'C'] * 8,
'C' : ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 4,
'D' : np.random.randn(24),
'E' : np.random.randn(24)
})
现在这将得到一个带sum的透视表:
pd.pivot_table(df, values=['D','E'], rows=['B'], aggfunc=np.sum)
这是对卑鄙的:
pd.pivot_table(df, values=['D','E'], rows=['B'], aggfunc=np.mean)
我怎样才能得到D
和E
的平均数?
希望我的问题足够清楚。
您可以连接两个数据帧:
或者可以将函数列表作为
aggfunc
参数传递,然后重新编制索引:好吧,有一个选项可以单独为每一列定义
aggfunc
。不知道怎么做,可能会传入aggfunc
dict类参数,比如{'D':np.mean, 'E':np.sum}
。更新实际上,在您的情况下,您可以手动旋转:
通过传入dict,可以将特定函数应用于特定列
相关问题 更多 >
编程相关推荐