0
我有一个大的DataFrame沿着下面的一行,我正在计算特定列的平均值或模式。我正在寻找一组功能(无论是开还是关)以及一个ID列(1或2)。大熊猫的意思和模式DataFrame中的特定列
MY_DF
Feature ID ITEM1 ITEM2 ITEM3
index
1 ON 1 2.3 544 32.2
2 OFF 1 2.55 544 23.4
3 ON 2 8.32 674 15.5
4 ON 1 1.56 544 43.4
5 OFF 2 3.55 674 32.4
我能够做到这两项任务分别找到平均值和特定列模式,但我不能工作,如何在两个输出连接在一起,但后来我也想知道如果有一种方法计算一击中选定列的平均值或模式?
在我目前的方法中,虽然我能够单独完成这两项任务,但我正努力将两个输出结合在一起。
这是我独立的方法
#as mode is not an official function in Pandas, set out method here
from scipy.stats.mstats import mode
f = lambda x: mode(x, axis=None)[0]
means = MY_DF.groupby(['Feature','ID'])[ITEM1,ITEM3].mean()
moder = MY_DF.groupby(['Feature','ID'])[ITEM2].apply(f)
我平均法的输出是这样的:
ITEM1 ITEM3
ON 1 1.93 37.8
2 8.32 15.5
OFF 1 2.55 23.4
2 3.55 32.4
我的方式方法输出是这样的:
ITEM2
ON 1 [544]
2 [674]
OFF 1 [544]
2 [674]
进出口寻找最后的如果可能的话输出这样的东西?
ITEM1 ITEM3 ITEM2
ON 1 1.93 37.8 544
2 8.32 15.5 674
OFF 1 2.55 23.4 544
2 3.55 32.4 674
好极了,感谢unutbu,这个完美的作品。我有一个其他问题是如何确保输出中的任何平均值限于2位小数? – MikG
您可以使用'pd.options.display.float_format ='{:.2f}'.format'来控制在打印DataFrame时如何显示浮动*。如果您只需要控制某些列的显示,请参阅http://stackoverflow.com/a/23922119/190597 – unutbu