Pandas DataFrame删除0.000000值行及sum后删除0值列的方法
Pandas 数据过滤常见操作
删除包含0.000000值的行
分两种常用场景按需选择:
- 只要行内任意一列值为0就删除整行
基础写法:df = df[~(df == 0).any(axis=1)]
如果担心浮点数精度导致0值判断误差,可搭配numpy的isclose方法更稳妥:import numpy as np df = df[~np.isclose(df, 0).any(axis=1)] - 仅删除指定列值为0的行,以
Age列为例:
写法:df = df[df['Age'] != 0]
删除sum聚合后值为0.000000的列
分两种需求按需选择:
- 仅过滤sum得到的Series结果,移除0值项
写法:sum_result = sum_result[sum_result != 0]
按照你给出的示例运行后,结果会保留Age、Cabin、Embarked三个非0项。 - 基于sum结果直接过滤原始DataFrame,删除所有求和为0的列:
写法:import numpy as np # 先计算每列求和结果,筛选出求和不为0的列名 keep_cols = df.sum()[~np.isclose(df.sum(), 0)].index # 仅保留符合要求的列 df = df[keep_cols]
内容的提问来源于stack exchange,提问作者iuuujkl
相关产品推荐
相关产品推荐

