如果列名为nan,如何从数据框中删除整个列,Python 3.6
我有15列的数据框&一些列名是nan,如果列名是nan,如何删除 栏目:如果列名为nan,如何从数据框中删除整个列,Python 3.6,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有15列的数据框&一些列名是nan,如果列名是nan,如何删除 栏目: ['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 typica
['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)
设置考虑样例数据文件<代码> 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
这也会起作用的
解决方案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
设置考虑样例数据文件<代码> 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
这也会起作用的
解决方案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