【问题标题】:How to rename pd.Series duplicated values如何重命名 pd.Series 重复值
【发布时间】:2021-08-21 20:52:15
【问题描述】:

我有 Pandas 系列,我在其中找到重复值,我试图用 value_integer 替换/重命名这些重复值。例如:

  1. 我正在使用自定义函数来查找系列中的重复项

    def find_duplicates(self,data,key): 返回结果

返回系列中所有重复项的系列。

  1. 现在我将这个函数传递给另一个函数,我希望这些值被重命名/替换为 _2,_3,_4 ....

    def rename_duplicates(self,data=None,key=None): 计数 = 1 重复 = self.find_duplicates(data,key)

         return data
    

重复值

苹果 苹果 苹果 香蕉 香蕉 橘子 橙色

我想得到

重复值

apple_2
apple_3
apple_4
banana_2
banana_3
orange_2
orange_3
  1. 然后放回原来的数据框

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    试试cumcount

    df['new'] = df['yourcol'] + '_' +df.groupby('yourcol').cumcount().add(1).astype(str)
    

    【讨论】:

    • 谢谢你,我有类似的东西你建议 data[key] = data[key] + data.groupby([key]).cumcount().astype(str).replace(' 0','_2') ,我试过你的 snipet ,但它只返回没有 _2,_3 的重复项
    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 2021-07-09
    • 1970-01-01
    相关资源
    最近更新 更多