Python 数据帧中按位不正确(包括NaN)
我有一个数据框,看起来像:Python 数据帧中按位不正确(包括NaN),python,pandas,Python,Pandas,我有一个数据框,看起来像: import pandas as pd import numpy as np df = pd.DataFrame({"id": range(5), "is_bar": [np.nan, np.nan, False, True, False], "is_foo": [True, False, True, True, False]}) 现在我想要df的行,其中foo在哪里,而不是bar或缺少bar。换句话说,这是期望的结果: id is_bar is_foo
import pandas as pd
import numpy as np
df = pd.DataFrame({"id": range(5), "is_bar": [np.nan, np.nan, False, True, False], "is_foo": [True, False, True, True, False]})
现在我想要df
的行,其中foo在哪里,而不是bar或缺少bar。换句话说,这是期望的结果:
id is_bar is_foo
0 0 NaN True
2 2 False True
我希望df.loc[df[“is_foo”]&~df[“is_bar”]
能起作用,但显然np.nan
s造成了类型错误
怎样才能实现呢?我认为需要fillna
:
df = df.loc[df["is_foo"] & ~df["is_bar"].fillna(False)]
print (df)
id is_bar is_foo
0 0 NaN True
2 2 False True