我有一个数据框,其中一些变量几乎具有相同的值。我需要重新编码它们。有没有比我想出的更有效的方法?例如,在下面的示例中,如果 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
最佳答案
您可以使用iloc
和replace
使用dict
即
df3.iloc[:,1:] = df3.iloc[:,1:].replace({'A':1,'B':2,'C':3,'D':4})
关于python - 一次在 Pandas 中重新编码多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50961598/