熊猫数据帧重命名行中的重复值



>我有一个数据帧

COL1   COL2   COL3
Red    Blue   Green
Red    Yellow  Blue
Blue   Red     Blue

我想重命名数据框中的值,如果它们在一行中出现 2x(或更多(

所以预期的输出是

COL1   COL2   COL3
Red    Blue   Green
Red    Yellow  Blue
Blue   Red     2Blue

我们可以在这里使用一个自定义函数,它将检查值是否在一行中duplicated,并在使用series.mask后为每个值添加一个incremental counter

def myf(x):
counter = x.groupby(x).cumcount().add(1).astype(str)
return x.mask(x.duplicated(),x.radd(counter))

print(df.apply(myf,axis=1))
#or df.T.apply(myf).T
COL1    COL2   COL3
0   Red    Blue  Green
1   Red  Yellow   Blue
2  Blue     Red  2Blue

最新更新