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