python - 一次在 Pandas 中重新编码多个变量

标签 python pandas loops

我有一个数据框,其中一些变量几乎具有相同的值。我需要重新编码它们。有没有比我想出的更有效的方法?例如,在下面的示例中,如果 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

最佳答案

您可以使用ilocreplace使用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/

相关文章:

python - 如何合并近似字符串?

javascript - 循环遍历对象数组

python - 嵌套字典的划分

php - 如何使用 PHP 从用户定义的值增加 mysql 数据库列中的值?

Python 3.x 如何将字节转换和处理为列表(也有一个字典)?

Python字符串插值实现

python - kubernetes 与 python 的集成

python - 似乎无法为 python 导入 Tkinter

python - 在Python中,如何计算列中的唯一值以逐渐增加组内的行数

python - 将字典的字典转换为 Pandas 中的数据框