我有我運行一個數據幀:如何使用pandas groupby&aggregate生成新列?
df.groupby(by="mycol").agg({"colA": "sum", "colB": "count"})
然而,colA
和colB
有存在的必要。從聚合創建新列的最「熊貓」方法是什麼?
編輯:
基本上,我有一組列的和我的聚集不是1:1的映射。因此,請考慮一個例子,我想將兩列值的比率作爲新列彙總。現在想一下這種映射的字典。
我知道在這個例子中,我只需要篩選play
,然後計算分組數據的平均值。但這不是問題的關鍵,所以請忽略這個簡單的解決方案,這只是簡單示例的副作用。
>> df
outlook play temperature
0 sunny True 25
1 sunny True 25
2 overcast True 19
3 rain False 21
4 overcast False 33
5 rain False 27
6 rain False 22
7 overcast True 26
8 sunny True 13
9 sunny True 16
# should become:
>> df.groupby(by="outlook").agg(?)
play_mean_temp
sunny 19.75
overcast 22.50
rain NaN
你需要'df.groupby(通過=「mycol 「).agg(['sum','count'])'? – jezrael
您可以添加數據和期望輸出的樣本嗎? – jezrael
@jezrael根據需要添加。感謝您的幫助! – Xiphias