Python 如何在CSV文件中查找两个半径之间的值

Python 如何在CSV文件中查找两个半径之间的值,python,pandas,Python,Pandas,我有一个csv文件,其中包含名为“经度”、“纬度”和“值”的列。看起来是这样的: Time Longitude Latitude SSHA 11/22/2013 8:57 -123.603607 81.377536 0.348 11/22/2013 8:57 -124.017502 81.387791 0.386 11/22/2013 8:57 -124.432344 81.397611

我有一个csv文件,其中包含名为“经度”、“纬度”和“值”的列。看起来是这样的:

Time                 Longitude      Latitude    SSHA
11/22/2013 8:57     -123.603607     81.377536   0.348
11/22/2013 8:57     -124.017502     81.387791   0.386
11/22/2013 8:57     -124.432344     81.397611   0.383
11/22/2013 8:57     -124.848099     81.406995   0.405
11/22/2013 8:57     -125.264724     81.415942   --
...                  ...            ...         ...
我感兴趣的是找到位于点的经度/纬度(-71,40)0.5到0.25之间的值。这是导致错误的当前代码

import pandas as pd
import numpy
import math
df = pd.read_csv(r"C:\\Users\\pathexample\\documents\\folder1\\csvfile.csv")
df1 = df[((df[['Longitude','Latitude']] - [-71, 40])**2).sum(axis=1) < 0.5**2]
df2 = df[((df[['Longitude','Latitude']] - [-71, 40])**2).sum(axis=1) < 0.25**2]
df[~(df1|df2)].to_csv(r"C:\\Users\\pathexample\\documents\\folder1\\csvfile.csv")
将熊猫作为pd导入
进口numpy
输入数学
df=pd.read\u csv(r“C:\\Users\\pathexample\\documents\\folder1\\csvfile.csv”)
df1=df[((df['经度','纬度]]-[-71,40])**2.和(轴=1)<0.5**2]
df2=df[((df[‘经度’,‘纬度’]-[-71,40])**2.和(轴=1)<0.25**2]
df[~(df1 | df2)]。至_csv(r“C:\\Users\\pathexample\\documents\\folder1\\csvfile.csv”)
我使用毕达哥拉斯定理保留csv文件中位于感兴趣点0.5 lon/lat范围内的行,并使用代码删除所有其他行
df1=df[(df['经度','纬度]-[-71,40])**2.和(轴=1)<0.5**2]
。 例如,下面的代码将获取csv文件并删除任何不在点(-71,40)0.5 lon/lat范围内的行

df=pd.read\u csv((r“C:\\Users\\pathexample\\documents\\folder1\\csvfile.csv))
df=df[((df['经度','纬度]]-[-71,40])**2.和(轴=1)<0.5**2]
df.to_csv(r“C:\\Users\\pathexample\\documents\\folder1\\csvfile.csv”)

上面提到的代码是有效的,我正在尝试组合这段代码的两个版本,并使用
df[~(df1 | df2)]获得感兴趣点的0.5到0.25 lon/lat之间的值。to_csv()
。但是,这部分并没有按预期工作。我得到了错误,“不支持的|操作数类型:'str'和'bool'。我将如何修改此项?

我不理解您的逻辑,但您似乎试图列出不属于df1和df2并集的值。此逻辑错误,而且就熊猫而言语法错误。若要获取“介于两者之间”的值的数据帧,请尝试以下操作:

df[df.isin(df1) & ~df.isin(df2)].dropna()

你好,Bob,您是否可以发布一些示例输入和您期望作为输出的数据示例?我更新了我的问题。我的表中有许多不同经度/纬度的值。但我感兴趣的是查找lon/lat在点(-71,40)的±0.5到±0.25之间的行。因此,一个lon/lat值(-71.1,40)应删除。您是否阅读了熊猫文档?
df[df.isin(df1) & ~df.isin(df2)].dropna()