2016-04-24 117 views
4

我有一个导入的xls文件作为熊猫数据框,有两列包含坐标,我将用它来合并具有地理位置数据的其他数据。 df.info()显示8859条记录,坐标栏中有'8835个非空float64'记录。根据特定列或列中是否存在空值从DataFrame中选择行

我想用24列(我假设为空)的所有列记录来查看是否有其他列(街道地址镇)不能用于手动添加这些24记录的坐标。 IE浏览器。返回df列中的数据帧['Easting'],其中isnull或NaN

我已经修改了如下给出的方法here;

df.loc[df['Easting'] == NaN] 

但是找回一个空的数据框(0行×24列),这对我来说没有任何意义。尝试使用Null或Non null不起作用,因为这些值未定义。我错过了什么?

回答

5

我认为你需要isnullboolean indexing检查NaN值:

df[df['Easting'].isnull()] 

Docs

警告

一个人必须铭记,在Python(和numpy的) ,南的比较不平等,但是没有。请注意,Pandas/numpy使用np.nan!= np.nan这一事实,并将np.nan等视为无。

In [11]: None == None 
Out[11]: True 

In [12]: np.nan == np.nan 
Out[12]: False 

所以相比于以上,标量相等比较对一个无/ np.nan不提供有用的信息。

In [13]: df2['one'] == np.nan 
Out[13]: 
a False 
b False 
c False 
d False 
e False 
f False 
g False 
h False 
Name: one, dtype: bool 
+0

谢谢你的快速反应,这工作了魅力。我是python的新手,并没有意识到这一点,也没有什么区别。 –

+0

很高兴能为您提供帮助!祝你好运! – jezrael

+0

除此之外,我使用这种方法删除行作为清洁过程的一部分; 'NLUDData_Clean = NLUDData.dropna(subset = ['Easting'])'尽管我有更少的记录,但是.info()查询返回的大小显示内存使用量增加了1.6 + mb到1.7 + mb,这对我来说不是问题但有兴趣知道为什么为将来 –

相关问题