如何在Python中一起使用filter、group by和agg函数

我有下面的数据框:


  A         B       C

0 asia      1000    ab

1 africa    2000    ab

2 asia      4000    bc

3 asia      6000    cd

4 USA       200     ab

我想过滤 A 列 = 亚洲 并按 C 列对 B 列进行求和。我正在尝试使用:


agg = df[df['A'] = 'asia'].groupby('C')[['B']].sum()

但它只返回一行,其中包含 B 列和 C 列的总和。我想返回整个数据帧。我怎样才能做到这一点?


白衣非少年
浏览 130回答 2
2回答

繁星淼淼

尝试这个:df1 = df[df['A'] == 'asia'].groupby(['A', 'C'], as_index=False).sum()print(df1)      A   C     B0  asia  ab  10001  asia  bc  40002  asia  cd  6000

慕姐4208626

我将分两步进行,如下所示。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'])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python