如何过滤出包含NaN或'-'的行?

时间:2020-06-12 12:57:41

标签: python pandas

我有一个数据框,我想过滤掉其中所有带有'-'或NaN的行。我正在尝试:

df[(~df.isin(['-'])) & (~df.isnull())]

但结果是:

enter image description here

我在做什么错了?

3 个答案:

答案 0 :(得分:1)

df.dropna()

这应该可以解决问题。

答案 1 :(得分:1)

TRADED_DATE PRICE
----------- ---------------------------------------
2013-01-02  515.61
2013-01-03  509.16
2013-01-04  517.45
2013-01-07  536.44

(4 rows affected)

更通用的方法:

#Drop all NaN values
#Set the "inplace" parameter to True if you want the result to be stored in the same DF
df.dropna(inplace=True)

也等同于:

condition = df[ df['col'] == '-' ].index

# Delete rows where "condition" applies

df.drop(condition , inplace=True)

答案 2 :(得分:1)

您应该使用|而不是&作为or运算符。

此外,还有一个.notnull()函数。仅供参考。

通过手机回复。希望这会有所帮助。