python - Pandas 数据框 - 仅在重复列值时添加后缀
问题描述
我在数据框中有一列看起来像 -
钥匙 |
---|
一个 |
乙 |
C |
一个 |
一个 |
我想对此进行转换,以便每个键都有一个后缀“_”+“如果值重复则出现的顺序”,即看起来像 -
钥匙 |
---|
A_1 |
乙 |
C |
A2 |
A_3 |
阅读相关线程我知道它必须是关于 groupby 和 cumcount 的游戏,但似乎无法获得最终解决方案。任何帮助,将不胜感激。
解决方案
让我们尝试对每组cumcount
进行mask
总计count
g = df.groupby('Key')
df['Key'] += g.cumcount().add(1).astype(str).radd('_').mask(g['Key'].transform('count')==1,'')
df
Key
0 A_1
1 B
2 C
3 A_2
4 A_3
推荐阅读
- c++ - 将面添加到曲线以制作曲面
- c++ - 请帮我理解什么'列表
' 是 - css - ngx-toastr 样式在 Angular 9 中不起作用
- dart - Dart 有对象吗?但没有命名的顶级类型?
- css - 如何水平对齐编辑文本区域
- linux - 从 bashrc 中的函数将字符串附加到当前命令
- hdfs - HBase - Put 如何在 VERSIONS => '1' 表上工作
- php - 如何根据 where 条件获取所有用户并将此结果与 laravel eloquent 中的另一个条件进行比较
- azure - 本地和 Azure 云之间的应用程序 SSO
- python - 如何使python输出不带括号的文本?