DataFrame如此:
new
Color Value
0 Red 100
1 Red 150
2 Blue 50
我将重复次数插入到新系列中:
new['Repeats'] = new.groupby(['Color'])[new.columns[-1]].transform('count')
结果是:
Color Value Repeats
0 Red 100 2
1 Red 150 2
2 Blue 50 1
有没有办法获得相同的结果,但只有'重复'每个实例输入一次,如:
Color Value Repeats
0 Red 100 2
1 Red 150
2 Blue 50 1
对我而言似乎很愚蠢,但客户要求这样做。
提前感谢你的帮助。
答案 0 :(得分:2)
执行transform
后,使用loc
和duplicated
将重复项设为空字符串:
new.loc[new['Color'].duplicated(), 'Repeats'] = ''
结果输出:
Color Value Repeats
0 Red 100 2
1 Red 150
2 Blue 50 1
请注意,您也可以将重复项指定为np.nan
,但您需要先将'Repeats'
列转换为字符串dtype,否则计数将成为浮点数。