pandas :如何删除以NaN为列名的多个列?多个、pandas、NaN

由网友(我的有口无心)分享简介:根据标题,下面是一个可重复使用的示例:raw_data = {'x': ['this', 'that', 'this', 'that', 'this'], np.nan: [np.nan, np.nan, np.nan, np.nan, np.nan], 'y': [np.nan, np.nan, np.nan, n...

根据标题,下面是一个可重复使用的示例:

raw_data = {'x': ['this', 'that', 'this', 'that', 'this'], 
            np.nan: [np.nan, np.nan, np.nan, np.nan, np.nan], 
            'y': [np.nan, np.nan, np.nan, np.nan, np.nan],
            np.nan: [np.nan, np.nan, np.nan, np.nan, np.nan]}

df = pd.DataFrame(raw_data, columns = ['x', np.nan, 'y', np.nan])
df

   x     NaN  y    NaN
0  this  NaN  NaN  NaN
1  that  NaN  NaN  NaN
2  this  NaN  NaN  NaN
3  that  NaN  NaN  NaN
4  this  NaN  NaN  NaN
目的是只删除列名为nan的列(因此保留列y)。dropna()不适用于列中的nan值,而不是列名称中的nan

df.drop(np.nan, axis=1, inplace=True)如果数据中只有一列以nan作为列名,而不是像我的数据中那样有多列以nan作为列名。

pandas.DataFrame中提取 选择 特定类型dtype的列

那么如何删除列名称为nan的多个列?

推荐答案

In [218]: df = df.loc[:, df.columns.notna()]

In [219]: df
Out[219]:
      x   y
0  this NaN
1  that NaN
2  this NaN
3  that NaN
4  this NaN
阅读全文

相关推荐

最新文章