【发布时间】:2020-01-08 17:08:34
【问题描述】:
扩展 Drop rows with all zeros in pandas data frame,我将如何编辑该解决方案以从仅包含 0 和 NA 的数据框中删除所有行。
我试过了:
df.loc[~(df == 0 | df.isnan()).all(axis=1))]
但得到ValueError: The truth value of a Series is ambiguous.
编辑
df[(~(df == 0 | df.isna())).all(axis=1)] 适用于我的数据框之一,但不适用于以下数据:
df = pd.DataFrame({'x': {'Total': -3.637978807091713e-09}, 'y': {'Total': -3.637978807091713e-09}, 'z': {'Total': -3.637978807091713e-09}, 'a': {'Total': 0.0}, 'b': {'Total': 1387241.5974624965}, 'c': {'Total': 1387241.5974624965}})
当我运行 df[(~(df == 0 | df.isna())).all(axis=1)] 时,我得到一个空数据框,因为存在一个不等于 0 或 NA 的值,因此不应删除该行。
【问题讨论】:
-
使用
df.eq(0)还是使用(df == 0) | ...?