我有一个数据帧,其中一些变量的值几乎相同。我需要重新编码。有没有比我想出的更有效的方法?例如,在下面的示例中,如果var3、var4和var10等于“A”、“B”、“C”、“D”,则需要将它们重新编码为1、2、3、4。在
testdata = [{'var1' : 'A', 'var3' : 'B', 'var4' : 'C', 'var10' : 'C'},
{'var1' : 'C', 'var3' : 'D', 'var4' : 'A', 'var10' : 'B'},
{'var1' : 'D', 'var3' : 'B', 'var4' : 'B', 'var10' : 'A'}
]
df3 = pd.DataFrame(testdata)
cols = df3.columns[1:]
for c in cols:
df3[c][df3[c] == 'A'] = 1
df3[c][df3[c] == 'B'] = 2
df3[c][df3[c] == 'C'] = 3
df3[c][df3[c] == 'D'] = 4
为了完整起见,您可以
stack
,然后替换为Series.map
。在或者,使用
^{pr2}$pd.factorize
:它绕过了对
repl_dict
的需要,并可扩展到数千个值。 当然,现在的标签编码完全是pd.factorize
。。。在您可以使用},使用
iloc
和{dict
,即相关问题 更多 >
编程相关推荐