首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在pandas数据帧上正确应用group by?

如何在pandas数据帧上正确应用group by?
EN

Stack Overflow用户
提问于 2021-10-24 18:38:22
回答 1查看 40关注 0票数 0
代码语言:javascript
复制
COL:SPM  COL:BS COL:PL2    COL:PL3  sum
   CCTC       BG      OP      OTH    1
   CCTC       BG      tech    OTH    3
   CCTC       BG      OP      OTH    5
   CCTC       BG      Info    OTH    10

我正在应用groupby,因为我希望在所有这些列spm、bs、pl2、pl3上对数据进行分组:

预期结果:

代码语言:javascript
复制
COL:SPM  COL:BS COL:PL2    COL:PL3  sum
   CCTC       BG      OP      OTH    6
   CCTC       BG      tech    OTH    3
   CCTC       BG      Info    OTH    10

我得到的结果是:

代码语言:javascript
复制
  COL:SPM  COL:BS COL:PL2    COL:PL3  sum
       CCTC       BG      OP      OTH    some unverified integer value

df.groupby(['SPM','BS','PL2','PL3'])['sum'].sum().reset_index()

我不明白为什么我把结果弄错了?我在网上找过了,但没有找到解决方案。

EN

Stack Overflow用户

发布于 2021-10-24 20:13:08

你能试试这个最小的示例代码吗?它起作用了吗?

代码语言:javascript
复制
df = pd.DataFrame({'SPM': ['CCTC', 'CCTC', 'CCTC', 'CCTC'],
                   'BS': ['BG', 'BG', 'BG', 'BG'],
                   'PL2': ['OP', 'tech', 'OP', 'Info'],
                   'PL3': ['OTH', 'OTH', 'OTH', 'OTH'],
                   'sum': [1.0, 3.0, 5.0, 10]})

out = df.groupby(['SPM', 'BS', 'PL2', 'PL3']).sum().reset_index()

输出:

代码语言:javascript
复制
>>> df
    SPM  BS   PL2  PL3  sum
0  CCTC  BG    OP  OTH    1
1  CCTC  BG  tech  OTH    3
2  CCTC  BG    OP  OTH    5
3  CCTC  BG  Info  OTH   10

>>> out
    SPM  BS   PL2  PL3  sum
0  CCTC  BG  Info  OTH   10
1  CCTC  BG    OP  OTH    6
2  CCTC  BG  tech  OTH    3
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69699718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档