首页 > 解决方案 > 获取csv内两列内的出现次数

问题描述

您好,我在 csv 中有以下数据集:

Group           Size     Some_other_column1      Some_other_column2

Short          Small            blabla1                     blabla6    
Moderate       Medium           babla3                      blabla8
Short          Small            blabla2                     blabla7
Moderate       Small            blabla4                     blabla9
Tall           Large            blabla5                     blabla10
Short          Medium           blabla11                    blabla12

我想使用 python 代码得到以下结果:

Group           Size      Count     Some_other_column1      Some_other_column2

Short          Small       2            blabla1                     blabla6
Moderate       Medium      1            babla3                      blabla8
Short          Small       2            blabla2                     blabla7
Moderate       Small       1            blabla4                     blabla9
Tall           Large       1            blabla5                     blabla10
Short          Medium      1            blabla11                    blabla12

基本上,我需要计算组大小对的数量并为称为“计数”的新列创建一个新列,保持所有其他列相同。我可以使用熊猫或任何可以提供帮助的东西。

作为参考,关于这个主题还有另一个问题,但它并没有解决我的问题,因为我需要保留多个列: Python: get a frequency count based on two columns (variables) in pandas dataframe

这里还有一个话题: How to assign a name to the a size() column? 但这也没有回答我的问题,因为我不想通过应用上述链接中描述的方法来间接删除 2 列(“其他列 1/2”)。另外,同样重要的是,我不想合并对,我需要保留所有对,因为它们在 Some_other_column1/2 上有不同的值。

标签: pythonpandascsv

解决方案


你需要insertGroupBy.transformsize

df.insert(2, 'Count', df.groupby(['Group','Size'])['Size'].transform('size'))
print (df)
      Group    Size  Count Some_other_column1 Some_other_column2
0     Short   Small      2            blabla1            blabla6
1  Moderate  Medium      1             babla3            blabla8
2     Short   Small      2            blabla2            blabla7
3  Moderate   Small      1            blabla4            blabla9
4      Tall   Large      1            blabla5           blabla10
5     Short  Medium      1           blabla11           blabla12

推荐阅读