【发布时间】:2019-08-02 19:01:11
【问题描述】:
我的数据框无法显示在世界各地都有经度和纬度点的整个数据(机密),但我只需要过滤一个国家/地区
假设这是数据
现在我必须过滤具有坐标范围的特定国家/地区的行数据
`latitude` : 8°4′ N to 37°6′ N
`longitude` : 68°7′ E to 97°25′ E
所以我尝试了这个
df_filtered = df[38 > df['LATITUDE'] > 8 and 98 > df['LATITUDE'] > 68]
但这给出了这个奇怪的错误
ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
【问题讨论】:
-
df[df.a.between(8,38) & df.a.between(68,98)]
-
虽然这是正确的@WeNYoBen,因为 OP 要求这样做,但
|运算符会更有意义 -
别担心,谢谢分享重复的帖子链接
df_filtered = df.loc[(df['LATITUDE'] >=8) & (df['LATITUDE'] <=38) & (df['LONGITUDE'] >=68) & (df['LONGITUDE'] <=98)]这工作 -
@Saurabh 你的逻辑没有意义:
df_filtered = df.loc[((df['LATITUDE'] >=8) & (df['LATITUDE'] <=38)) | ((df['LONGITUDE'] >=68) & (df['LONGITUDE'] <=98))这更有意义
标签: python python-3.x pandas data-science