我想在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
选项。
答案 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]]