我已将一堆数据从 CSV 文件读入我的数据框 (df)。 其中一个字段是 GeoLocation(经度、纬度),我希望切出经度在 37 到 40 之间的某些行。 CSV 将地理位置存储在包含(经度、纬度)的列中 我在使用“df.where()”函数时遇到问题
geo = df.where(df['GeoLocation'][0] < 40 & df['GeoLocation'][0] > 37)
这会不断抛出错误
TypeError: 'str' object cannot be interpreted as an integer
当我尝试对列进行切片时,我做错了什么?
这是我用来提取数据的代码
df = pd.concat([x for x in pd.read_csv('U.S._Chronic_Disease_Indicators__CDI_.csv', chunksize=1000)], ignore_index=True)'
最佳答案
您想先拆分系列,然后再进行过滤
df[['lat', 'long']] = df['GeoLocation'].str.split(',', expand=True).astype(float)
geo = df[(df['lat'] < 40) & (df['long'] > 37)]
请注意,[(x) & (y)] 对于您明确拥有所有括号非常非常挑剔。
关于python - 如何对 pandas 数据框地理定位进行切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42958313/