呆鸟译Py呆鸟的Python数据分析

Groupby 分组后,如何合并列里的内容?

2021-04-23  本文已影响0人  呆鸟的简书

Pandas 百问百答第 012 篇。

前两天回答了一个群友的问题,感觉有点意思,记录如下:

问题:

类似这样的需求以前也有人提过,今天就与大家分享一下解决方案:

  1. 要实现列的内容合并,需要先把部门人数和运营成本两列的类型从数字改为文本,如果要合并的列类型本身就是文本,则无需转换

    上图中可以看到部门人数和运营成本两列的类型为 object,即字符串类型
  2. 创建临时列,把要合并的列先合并了,分组后,直接操作这个临时列就可以了
  3. 新增一列部门人数:运营成本,该列的目的是按公司部门把每组内部的临时合并一列中的内容组合在一起,这里用的是 transform,不改变原始 df 的行数,只是在原有 df 上增加分组合并的内容
  4. 因为上一步用的是 transform,因此处理过的 df 存在重复值,需要去重



    上图显示了如何添加合并列,如何分组并合并每组中的内容,可以看到输出的 df 与原始 df 的行数一样都是 6 行,这就是 transform 的特性,虽然分组 groupby,但不是减少行数

  5. 选择需要输出的列,如公司部门部门人数:运营成本,然后去重,就可以得到想要的结果了
  6. 补充说明,群友当时还想输出为 JSON 格式,pandas 提供了 to_json 方法,可以将 dataframe 输出为 JSON 格式,本篇重点不是这个,就先不介绍了,有兴趣的朋友,可以去官网搜索 to_json,自己看下。

要查看源码,请在 python大咖谈后台输入分组合并,下载完整的 ipynb 文件

上一篇下一篇

猜你喜欢

热点阅读