创建一个新列,将相同的索引分配给Pandas DataFrame中的重复值 [英] Creating a new column assigning same index to repeated values in Pandas DataFrame

查看:35
本文介绍了创建一个新列,将相同的索引分配给Pandas DataFrame中的重复值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何生成一个列出重复值的新列?例如,我的数据框是:

How can I generate a new column listing repeated values? For example, my dataframe is:

id    color

123   white
123   white
123   white
345   blue
345   blue
678   red

这是所需的输出:

#    id   color

1   123   white
1   123   white
1   123   white 
2   345   blue
2   345   blue
3   678   red

推荐答案

使用 factorize

df['#']=df.id.factorize()[0]+1
df
    id  color  #
0  123  white  1
1  123  white  1
2  123  white  1
3  345   blue  2
4  345   blue  2
5  678    red  3

另一种方法

df.groupby('id').ngroup()+1
0    1
1    1
2    1
3    2
4    2
5    3
dtype: int64

要将其添加到第一个位置:

To add it to the first positon:

df.insert(loc=0, column='#', value=df.id.factorize()[0]+1)
df
   #   id  color 
0  1  123  white  
1  1  123  white  
2  1  123  white  
3  2  345   blue  
4  2  345   blue  
5  3  678    red  

这篇关于创建一个新列,将相同的索引分配给Pandas DataFrame中的重复值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆