如何在python中的循环中创建虚拟变量?

时间:2016-01-19 10:16:49

标签: python loops pandas dummy-variable

所以我有一个带有一堆食物的数据框,其中一些我想制作一个虚拟变量,其中一些我想单独留下,我想创建一个懒惰/更快的方法来做到这一点而不是只需输入:

dum_A = pd.get_dummies(df['A'],prefix='A')
dum_B = pd.get_dummies(df['B'],prefix='B')
...
dum_N = pd.get_dummies(df['N'],prefix='N')

所以这是我在下面提出的代码。

List_of_dummy_names = []
List_of_dummy_col = []

for col in list(df1.columns.values):
     if len(df1[col].value_counts()) <= 7:
        List_of_dummy_names.append('dum_'+col)
        List_of_dummy_col.append(col)

for (dummy, col) in zip(List_of_dummy_names, List_of_dummy_col):
    dummy = pd.get_dummies(df1[col], prefix=col)

但是这只返回变量dummy是列表中第n个特征的虚拟数据帧。我在这做错了什么?我想为每个循环从列表中获取一个新名称,而不是看起来它每次都在为变量dummy伪装新的虚拟DF。

非常感谢先生们。

1 个答案:

答案 0 :(得分:1)

for col in list(df.columns.values):
     if len(df[col].value_counts()) <= 7:
            df= pd.concat([df,pd.get_dummies(df[col],prefix=col)],axis=0)
            df[col].fillna(0,inplace=True)
        `