我有一个数据框
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
在一行中incremental counter
,并在使用后向每个值添加一个series.mask
:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句