我有一個(gè)看起來(lái)像這樣的數(shù)據(jù)框pd.DataFrame({'a':['A', 'B', 'B', 'C', 'C', 'D', 'D', 'E'], 'b':['Y', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N'], 'c':[20, 5, 12, 8, 15, 10, 25, 13]}) a b c0 A Y 201 B Y 52 B N 123 C Y 84 C Y 155 D N 106 D N 257 E N 13我想對(duì)“a”列進(jìn)行分組,檢查“b”列中的任何一個(gè)是否為“Y”或 True 并保留該值,然后對(duì)“c”求和結(jié)果數(shù)據(jù)框應(yīng)該是這樣的 a b c0 A Y 201 B Y 172 C Y 233 D N 354 E N 13我嘗試了以下但出現(xiàn)錯(cuò)誤df.groupby('a')['b'].max()['c'].sum()
1 回答

尚方寶劍之說(shuō)
TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用agg和max。sum'b' 列上的最大值確實(shí)有效,因?yàn)?'Y' > 'N' == True
print(df.groupby('a', as_index=False).agg({'b': 'max', 'c': 'sum'}))
a b c
0 A Y 20
1 B Y 17
2 C Y 23
3 D N 35
4 E N 13
添加回答
舉報(bào)
0/150
提交
取消