【问题标题】:How to Rename all the all the names in a column duplicates in Dataframe如何重命名Dataframe中重复列中的所有名称
【发布时间】:2019-09-17 07:43:48
【问题描述】:

我在重命名数据框列中的所有重复名称时遇到问题。

Column 1: x,y,z,....(all different names)
Column 2: a,b,c,.....(all different names)
Column 3: p,pq,r,s,p,s,r,pq,p.....

我需要第 3 列作为 p_1,pq_1,r_1,s_1,p_2,s_2,r_2,pq_2,p_3,.....

我在第 3 列中有很多重复项,但我想按上述方式命名。

我尝试了下面的代码并得到输出:

Column 3: p,pq,r,s,p_1,s_1,r_1,pq_1,p_2,.....

def df_name_uniquify(RS):
    df_names = RS["Column 3"]
    new_names = []
    for item in df_names:
        counter = 0
        newitem = item
        while newitem in new_names:
            counter += 1
            newitem = "{}_{}".format(item, counter)
        new_names.append(newitem)
    RS["Column 3"] = new_names
    return RS
df = df_name_uniquify(RS)

对代码的任何建议或修改都会有所帮助

提前致谢

【问题讨论】:

    标签: python-3.x pandas dataframe duplicates


    【解决方案1】:

    您可以在这里使用cumcount()

    df['new_col']=df.Column3+'_'+(df.groupby('Column3').cumcount()+1).astype(str)
    print(df)
    

      Column3 new_col
    0       p     p_1
    1      pq    pq_1
    2       r     r_1
    3       s     s_1
    4       p     p_2
    5       s     s_2
    6       r     r_2
    7      pq    pq_2
    8       p     p_3
    

    【讨论】:

      猜你喜欢
      • 2021-12-18
      • 2021-04-24
      • 1970-01-01
      • 2019-08-06
      • 2016-06-06
      • 2016-02-20
      • 2019-08-17
      • 1970-01-01
      • 2019-09-26
      相关资源
      最近更新 更多