我有下面的数据框: 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
提交
取消