删除保留NaN的pandas列中的负值

时间:2017-05-23 11:14:27

标签: python-3.x pandas

我想知道如何删除具有负值但保留NaN的行。目前我正在使用:

DF = DF.ix[DF['RAF01Time'] >= 0]

但这会移除NaN。

提前致谢。

2 个答案:

答案 0 :(得分:2)

boolean indexing需要isnull另一个条件:

DF = DF[(DF['RAF01Time'] >= 0) | (DF['RAF01Time'].isnull())]

样品:

DF = pd.DataFrame({'RAF01Time':[-1,2,3,np.nan]})
print (DF)
   RAF01Time
0       -1.0
1        2.0
2        3.0
3        NaN

DF = DF[(DF['RAF01Time'] >= 0) | (DF['RAF01Time'].isnull())]
print (DF)
   RAF01Time
1        2.0
2        3.0
3        NaN

query的另一个解决方案:

DF = DF.query("~(RAF01Time < 0)")
print (DF)
   RAF01Time
1        2.0
2        3.0
3        NaN

答案 1 :(得分:0)

您可以使用< 0,然后采用条件的反转。

DF = DF[~(DF['RAF01Time'] < 0)]