比方说,我有一个“name
”列的DataFrame(我按照某种优先级标准排序)。很少有名字是重复的,我想给复制品添加一个简单的指示符。如何修改Python熊猫中的重复行
例如,
'jones a'
...
'jones a' # this should become 'jones a2'
要获得重复的子集,我可以做
df.loc[df.duplicated(subset=['name'], take_last=True), 'name']
不过,我认为apply
功能不允许inplace
修改,对吧?所以我基本上最终做的是:
df.loc[df.duplicated(subset=['name'], take_last=True), 'name'] = \
df.loc[df.duplicated(subset=['name'], take_last=True), 'name'].apply(lambda x: x+'2')
但我的感觉是,可能有更好的办法。任何想法或提示?我真的很感激你的反馈!
请注意,您的解决方案仅适用于最多有一个副本。另外,你应该可以用'df.name.duplicated(take_last = True)'替换'='后的所有内容。'# – ari