熊猫按值的多个列和级别进行分组,并将结果附加到原始数据框

彩信

我有一个数据框,并希望按几列和不同级别的值对其进行分组。此外,我想将按结果分组到原始数据帧。

这是原始数据帧:

  AAA BBB CCC 
  x1  y1  yes 
  x1  y1  yes  
  x1  y1  no   
  x1  y2  no
  x2  y2  yes
  x2  y2  no 

这就是我要的:

  AAA BBB CCC Yes No
  x1  y1  yes 2   1  
  x1  y1  yes 2   1
  x1  y1  no  2   1
  x1  y2  no  0   1
  x2  y2  yes 1   1
  x2  y2  no  1   1

这里的想法是,我想按AAA和BBB分组,并在每个分组的CCC中计数是/否。然后,我想将计数值添加到2个新列中,是和否。

提前致谢!

彼得·莱姆比格勒

一种方法是:

  • 通过AAA分组BBB
  • 得到value_counts()CCC每个组
  • 将最里面的值计数索引(由yes组成no堆叠到列中
  • 将计数与原始DataFrame合并

counts = (df.groupby(['AAA', 'BBB'])['CCC']
            .value_counts()
            .unstack()
            .fillna(0)
            .astype(int))

counts.columns = counts.columns.str.title()

pd.merge(df, counts, left_on=['AAA', 'BBB'], right_index=True)

  AAA BBB  CCC  No  Yes
0  x1  y1  yes   1    2
1  x1  y1  yes   1    2
2  x1  y1   no   1    2
3  x1  y2   no   1    0
4  x2  y2  yes   1    1
5  x2  y2   no   1    1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫数据框按两列分组,计数和总和

绘制按列分组的熊猫数据框

按多个列值过滤熊猫数据框行

熊猫:如何将bin值附加回原始数据框

熊猫,按计数分组并将计数添加到原始数据框?

如何按列值对熊猫数据框的行进行分组?

熊猫数据框按多列分组

熊猫-使用for循环将多个列附加到数据框

熊猫数据框。按值和计数分组

熊猫-按所有列分组并在原始数据框中标记

熊猫数据框按列值的下一次出现进行分组

熊猫原始数据框已更改

在python中返回多个值,并将它们附加到数据框的唯一列中

熊猫数据框按特定值分组

Pyspark-将数据框列的值提供给功能并将功能输出附加到原始数据框

从嵌套列表的列表中提取特定变量的值,并将提取值的列附加到我的原始数据集中

熊猫-将选定的列分配回原始数据框

如何计算熊猫数据框中每组的行数并将其添加到原始数据

通过按列值分组从一个熊猫数据框创建多个数据框

熊猫将应用结果转换回原始数据框

在R中,如何将拟合值列添加到原始数据框?

熊猫数据框:按几列分组,应用函数并将结果映射回

如何计算 Pandas 数据帧的过滤行的均值并将均值附加到原始数据帧的所有列?

行绑定多个数据帧并将原始数据帧的名称添加到列中

按周对数据框进行分组,并将一周内的最小和最大日期获取到新列

在熊猫数据框中,如何根据列值过滤行,进行计算并将结果分配给新列?

如何按多个条件对熊猫df进行分组,取平均值并附加到df?

检查数组值并将结果数组作为列添加到熊猫数据框

是否可以按不是键的列分组并将聚合结果附加到 Apache Flink/Beam 中的原始记录