根据标题,这是一个可重复的例子:
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作为列名,就像我的数据一样.
那么如何删除col名称所在的多个列nan?
Max*_*axU 13
In [218]: df = df.loc[:, df.columns.notnull()]
In [219]: df
Out[219]:
      x   y
0  this NaN
1  that NaN
2  this NaN
3  that NaN
4  this NaN
你可以试试
df.columns = df.columns.fillna('to_drop')
df.drop('to_drop', axis = 1, inplace = True)
| 归档时间: | 
 | 
| 查看次数: | 3984 次 | 
| 最近记录: |