我有一个4列宽6k行的数据框。
itm cla1 cla2 num
0 77 99 1 0.7
1 45 71 21 0.9
2 27 15 99 3
3 67 21 15 .11
4 77 15 90 7
...
在数据集中,我想将每个共享一个值的'itm'分组在一起,并用一个唯一的增量字符串替换它们。我想对'cla1'和'cla2'做同样的事情,只是我想让'cla1'和'cla2'共享唯一的增量字符串(在'itm'中没有使用)。
结果看起来像是
itm cla1 cla2 num
0 A0 X0 X98 0.7
1 A1 X1 X9 0.9
2 A2 X2 X0 3
3 A3 X3 X2 .11
4 A0 X5 X0 7
...
有什么建议吗?不幸的是,只是在每个值的开头添加一个字符串并不是我想要的。我希望它是递增的。
3条答案
按热度按时间cmssoen21#
您可以使用
dict.fromkeys
生成唯一值并保留它们的“可见”顺序。使用
enumerate
可以构建Map:您可以
.stack()
多列,让它们使用相同的Map。然后,您可以将它们传递给
.replace()
gwbalxhn2#
您可以先找到唯一值,然后按如下方式Map它:
6tr1vspr3#
您可以将
itm
和cla1
,cla2
列中的所有唯一值作为一个系列,然后将前缀添加到这些系列中,然后合并回原始 Dataframe 并将原始列替换为合并后的索引:输出: