创建一个新列,将相同的索引分配给Pandas DataFrame中的重复值 [英] Creating a new column assigning same index to repeated values in Pandas DataFrame
本文介绍了创建一个新列,将相同的索引分配给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屋!
查看全文