删除 Pandas 数据框中所有只有 0 或 NA 的行

cpa*_*age 1 python pandas na

扩大对降排在熊猫的数据帧全部为零,我将如何编辑解决方案,从仅包含0和NAS的数据帧中删除所有行。

我试过:

df.loc[~(df == 0 | df.isnan()).all(axis=1))]
Run Code Online (Sandbox Code Playgroud)

但得到 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}})
Run Code Online (Sandbox Code Playgroud)

当我运行时df[(~(df == 0 | df.isna())).all(axis=1)],当不应该删除该行时,我得到一个空数据帧,因为存在一个不等于 0 或NA.

ank*_*_91 6

IIUC,您需要将反转包装在括号下:

df[~((df==0)|(df.isna())).all(1)]
Run Code Online (Sandbox Code Playgroud)