jim*_*mmy 6 python indexing pandas
如何生成列出重复值的新列?例如,我的数据框是:
id color
123 white
123 white
123 white
345 blue
345 blue
678 red
Run Code Online (Sandbox Code Playgroud)
这是所需的输出:
# id color
1 123 white
1 123 white
1 123 white
2 345 blue
2 345 blue
3 678 red
Run Code Online (Sandbox Code Playgroud)
检查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
Run Code Online (Sandbox Code Playgroud)
另一种方法
df.groupby('id').ngroup()+1
0 1
1 1
2 1
3 2
4 2
5 3
dtype: int64
Run Code Online (Sandbox Code Playgroud)
要将其添加到第一个位置:
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
Run Code Online (Sandbox Code Playgroud)