python - 获取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 上有不同的值。
解决方案
你需要insert
与GroupBy.transform
:size
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
推荐阅读
- android - Android约束布局textview包装上下文并在没有更多空间时显示椭圆
- python - 设置位数(x 或 y)+ 设置位数(x 和 y)= m。有没有办法解决这个方程,找到 x 和 y 之间的关系?
- drake - Drake 中“通过接触”轨迹优化的工作流程
- android - Android - 如何将依赖关系树导出到文件?
- emacs - Emacs 从缩进中排除关键字(Verilog)
- javascript - 数组内的数组在javascript中获取对象
- r - R中具有cumsum函数的可变宽度柱形图
- power-automate - 有没有办法解决流程错误“需要指定消息提及文本”。向 Teams 频道发布消息时?
- excel - VBA - 从一个工作簿复制和粘贴到另一个工作簿
- vue.js - 从方法有条件地返回一个 Vue 组件