如何删除数据透视表中指定行列及None类型空值?
数据透视表清理方案
一、删除标识为'C'的行和列
直接用pandas的drop()方法就能实现:
- 删除列:执行
df.drop(columns=['C'], inplace=True),如果是多级列结构,要指定完整列标识(比如df.drop(columns=[('上层列名', 'C')], inplace=True)) - 删除行:执行
df.drop(index=['C'], inplace=True),多级行索引同理需指定完整行标识
二、删除NoneType类型的空值
针对<class 'NoneType'>的空值,用dropna()方法处理:
- 删除包含任意None值的行:
df.dropna(axis=0, how='any', inplace=True) - 删除包含任意None值的列:
df.dropna(axis=1, how='any', inplace=True) - 若只想保留完全没有None值的行/列,把
how参数改为'all'即可
如果需要更精准筛选,也可以用布尔索引:
- 保留所有值都非None的行:
df = df[df.notna().all(axis=1)] - 保留所有值都非None的列:
df = df.loc[:, df.notna().all(axis=0)]
内容的提问来源于stack exchange,提问作者Mathew John
相关产品推荐
相关产品推荐

