Pandas get_dummies for for循环

时间:2018-05-15 02:10:36

标签: python pandas

我想在for循环中使用pandas.get_dummies将分类变量转换为虚拟变量。 但是,以下代码不会转换数据帧。

data_cleaner = [data_train, data_val]
for df in data_cleaner:
    df = pd.get_dummies(df, columns = categorical_fields)

data_train.head() # Not changed

我知道for循环中的迭代器只是一个临时变量。但修改后的代码也没有用。

for i in range(len(data_cleaner)):
    data_cleaner[i] = pd.get_dummies(data_cleaner[i], columns = categorical_fields)

data_train.head() # Still not changed

任何人都可以提供帮助?我是否必须为每个数据帧手动运行get_dummies?仅供参考,熊猫get_dummies未提供inplace选项。

2 个答案:

答案 0 :(得分:1)

尝试以下

data_cleaner = [data_train, data_val]
for i,df in enumerate(data_cleaner):
    data_cleaner[i] = pd.get_dummies(df, columns = categorical_fields)

data_train,data_val=data_cleaner

答案 1 :(得分:1)

您可以将其作为列表理解

运行

data_cleaner = [pd.get_dummies(df, columns=categorical_fields) for df in data_cleaner]

data_train_dum, data_val_dum = [pd.get_dummies(df, columns=categorical_fields) for df in [data_train, data_val]]