如何为Pandas DataFrame中Id列的重复值添加'--duplicated'后缀?
给重复Id添加指定后缀的解决方案
需求说明
初始化的DataFrame如下:
import pandas as pd df = pd.DataFrame({'Weather':[32,45,12,18,19,27,39,11,22,42], 'Id':[1,2,3,4,5,1,6,7,8,2]})
其中索引5和9的Id为重复值,需要为这两个位置的Id添加--duplicated后缀,最终让这两行的Id分别变为1--duplicated和2--duplicated。
实现代码
# 定位重复的Id行,转换为字符串后拼接后缀 df.loc[df['Id'].duplicated(), 'Id'] = df.loc[df['Id'].duplicated(), 'Id'].astype(str) + '--duplicated' # 查看目标行的结果 print(df.loc[[5, 9]])
执行结果
Weather Id 5 27 1--duplicated 9 42 2--duplicated
补充说明
df['Id'].duplicated()默认会标记第二次及以后出现的重复值,刚好匹配需要修改的行;如果需要标记所有重复值(包括第一次出现的),可以添加参数keep=False。- 因为原始
Id是整数类型,必须先通过astype(str)转换为字符串类型才能进行后缀拼接,否则会报错。
内容的提问来源于stack exchange,提问作者Anubhav
相关产品推荐
相关产品推荐

