首页 > 解决方案 > Pandas 数据框 - 仅在重复列值时添加后缀

问题描述

我在数据框中有一列看起来像 -

钥匙
一个
C
一个
一个

我想对此进行转换,以便每个键都有一个后缀“_”+“如果值重复则出现的顺序”,即看起来像 -

钥匙
A_1
C
A2
A_3

阅读相关线程我知道它必须是关于 groupby 和 cumcount 的游戏,但似乎无法获得最终解决方案。任何帮助,将不胜感激。

标签: pythonpandasdataframepandas-groupby

解决方案


让我们尝试对每组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

推荐阅读