如何从仅包含NaN的预选数据框中删除列

时间:2017-03-09 14:00:51

标签: python pandas

我想删除所有只包含NaN的列。这是我的示例代码:

rutte2[[u'50PLUS', u'AOV', u'Bontes', u'Bontes/Van Klaveren',
       u'Brinkman', u'CD', u'CDA', u'ChristenUnie', u'D66', u'De Jong',
       u'Eerdmans/Van Schijndel', u'GPV', u'GroenLinks', u'Hendriks',
       u'Houwers', u'Klein', u'Kortenoeven/Hernandez', u'Kuzu/Öztürk',
       u'Lazrak', u'LN', u'LPF', u'Nawijn', u'Nijpels', u'PvdA', u'PvdD',
       u'PVV', u'RPF', u'SGP', u'SP', u'Unie 55+', u'Van Klaveren',
       u'Van Oudenallen', u'Van Vliet', u'Verdonk', u'Verkerk', u'VVD',
       u'Wijnschenk', u'Wilders']].dropna(axis=1, how='all')

当我这样做时

type(rutte2[[u'50PLUS', u'AOV', u'Bontes', u'Bontes/Van Klaveren',
           u'Brinkman', u'CD', u'CDA', u'ChristenUnie', u'D66', u'De Jong',
           u'Eerdmans/Van Schijndel', u'GPV', u'GroenLinks', u'Hendriks',
           u'Houwers', u'Klein', u'Kortenoeven/Hernandez', u'Kuzu/Öztürk',
           u'Lazrak', u'LN', u'LPF', u'Nawijn', u'Nijpels', u'PvdA', u'PvdD',
           u'PVV', u'RPF', u'SGP', u'SP', u'Unie 55+', u'Van Klaveren',
           u'Van Oudenallen', u'Van Vliet', u'Verdonk', u'Verkerk', u'VVD',
           u'Wijnschenk', u'Wilders']])

它返回:

pandas.core.frame.DataFrame

以下是进一步说明的图片:

pandas screenshot

为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

所以"输入"返回Python对象的类型,显然在你的情况下是一个pandas Dataframe。如果要打印数据框,请使用

print rutte2

或在Python 3.x中。

print(rutte2)

dropna返回一个删除了NaN的新数据帧。如果你想从rutte2中删除NaN,请使用:

(编辑:使用子集对所选列进行就地删除)

rutte2.dropna(subset=[u'50PLUS', u'AOV', u'Bontes', u'Bontes/Van Klaveren',
       u'Brinkman', u'CD', u'CDA', u'ChristenUnie', u'D66', u'De Jong',
       u'Eerdmans/Van Schijndel', u'GPV', u'GroenLinks', u'Hendriks',
       u'Houwers', u'Klein', u'Kortenoeven/Hernandez', u'Kuzu/Öztürk',
       u'Lazrak', u'LN', u'LPF', u'Nawijn', u'Nijpels', u'PvdA', u'PvdD',
       u'PVV', u'RPF', u'SGP', u'SP', u'Unie 55+', u'Van Klaveren',
       u'Van Oudenallen', u'Van Vliet', u'Verdonk', u'Verkerk', u'VVD',
       u'Wijnschenk', u'Wilders'], axis=1, how='all', inplace=True)

你确定rutte2不是一个空的数据帧:-)?