python-3.x - Pandas 数据框中的新列与给定列中的重复项有关
问题描述
嗨,我有一个带有“id”列的数据框,如下所示
id
abc
def
ghi
abc
abc
xyz
def
我需要一个带有数字 1 的新列“id1”,并且每个重复项都应该增加数字。输出应该如下所示。
id id1
abc abc1
def def1
ghi ghi1
abc abc2
abc abc3
xyz xyz1
def def2
谁能建议我解决这个问题?
解决方案
用于groupby.cumcount
count id
s,添加1
并转换为string
s:
df['id1'] = df['id'] + df.groupby('id').cumcount().add(1).astype(str)
print (df)
id id1
0 abc abc1
1 def def1
2 ghi ghi1
3 abc abc2
4 abc abc3
5 xyz xyz1
6 def def2
详情:
print (df.groupby('id').cumcount())
0 0
1 0
2 0
3 1
4 2
5 0
6 1
dtype: int64
推荐阅读
- xpath - Telegram 的即时视图 API:不支持元素
- php - DOMXPath 不使用有效的表达式
- reactjs - 如何将 totalPrice 传递给 taxSum.js?
- node.js - 如何使用 Fetch 在前端获取后端错误消息
- python - Beautifulsoup findAll, how to get the second text
- python - 最简单的写法“虽然不是初始值”
- angular - Angular 7 组件测试 - 如何验证输入元素值
- python - python类中的条件
- cmake - 以下配置文件被考虑但未被接受:
- serialization - 如何使用需要实现者实现 serde::Deserialize 的方法创建特征