【问题标题】:Get count of occurrences inside two columns inside a csv [duplicate]获取csv中两列内的出现次数[重复]
【发布时间】:2020-04-09 20:37:14
【问题描述】:

您好,我在 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

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

作为参考,还有一个关于这个主题的问题,但它不能解决我的问题,因为我需要保留多个列: 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 上具有不同的值。

【问题讨论】:

  • 谢谢,但它没有回答我的问题,我已经在主要问题中解释了原因。
  • 你可以添加你的代码,哪个不起作用?
  • 谢谢,这正是我需要的!
  • hmmm,但是如果需要列到第三位,解决方案应该有点不同,有必要吗?

标签: python pandas csv


【解决方案1】:

您需要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

【讨论】:

  • 不必排在第三位,但很高兴知道此选项也可用。
猜你喜欢
  • 2017-05-01
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 2023-01-12
  • 2020-10-07
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多