2017-09-20 38 views
0

我有15列的数据框&某些列名是nan,如果列名是nan,如何删除。如果列名是nan,Python如何从数据框中删除整列?Python 3.6

列:

['Country', 'Survey', 'a typical day', 'a particularly good day', 
    'a particularl', 'dk/refused', 'total', nan, nan, nan, nan, nan, 
    'questionsCode'], dtype=object) 

预期与下面列中的数据帧:

['Country', 'Survey', 'a typical day', 'a particularly good day', 
    'a particularl', 'dk/refused', 'total', questionsCode'], dtype=object) 

回答

2

设置
考虑样本数据帧df

cols = [ 
    'Country', 'Survey', 'a typical day', 
    'a particularly good day', 'a particularl', 
    'dk/refused', 'total', 
    np.nan, np.nan, np.nan, np.nan, np.nan, 
    'questionsCode' 
] 

df = pd.DataFrame([range(13)], range(2), cols) 
df 

    Country Survey a typical day a particularly good day a particularl dk/refused total NaN NaN NaN NaN NaN questionsCode 
0  0  1    2      3    4   5  6 7 8 9 10 11    12 
1  0  1    2      3    4   5  6 7 8 9 10 11    12 

解决方案1 ​​
杠杆loc与基于标签索引

df.loc[:, df.columns.dropna()] 

    Country Survey a typical day a particularly good day a particularl dk/refused total questionsCode 
0  0  1    2      3    4   5  6    12 
1  0  1    2      3    4   5  6    12 

这也已经工作

df[df.columns.dropna()] 

解决方案2
使用布尔索引

df.loc[:, df.columns.notnull()] 

    Country Survey a typical day a particularly good day a particularl dk/refused total questionsCode 
0  0  1    2      3    4   5  6    12 
1  0  1    2      3    4   5  6    12 
相关问题