我有下面的數據框: A B C0 asia 1000 ab1 africa 2000 ab2 asia 4000 bc3 asia 6000 cd4 USA 200 ab我想過濾 A 列 = 亞洲 并按 C 列對 B 列進行求和。我正在嘗試使用:agg = df[df['A'] = 'asia'].groupby('C')[['B']].sum()但它只返回一行,其中包含 B 列和 C 列的總和。我想返回整個數據幀。我怎樣才能做到這一點?
2 回答

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
嘗試這個:
df1 = df[df['A'] == 'asia'].groupby(['A', 'C'], as_index=False).sum()
print(df1)
A C B
0 asia ab 1000
1 asia bc 4000
2 asia cd 6000

慕姐4208626
TA貢獻1852條經驗 獲得超7個贊
我將分兩步進行,如下所示。
group = [('asia', data['B'].sum(), c) for c, data in df[df['A'] = 'asia'].groupby('C')] df_new = pd.DataFrame(group, columns=['A', 'B', 'C'])
添加回答
舉報
0/150
提交
取消