首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GeoDataFrame .merge GeoPandas时空GeoPandas

使用GeoDataFrame .merge GeoPandas时空GeoPandas
EN

Stack Overflow用户
提问于 2016-10-03 20:59:35
回答 1查看 1.6K关注 0票数 0

我试图通过使用属性联接来合并熊猫数据和地质公园。我使用的是一个美国县形状文件(https://geonet.esri.com/thread/24614 first response)和一个csv文件(http://water.usgs.gov/watuse/data/2010/index.html是第一个Excel格式,然后保存为csv)。使用FIPS连接数据后,我尝试打印新的geodataframe,但只打印上面空的GeoDataFrame消息的标题。这是我正在使用的代码

代码语言:javascript
复制
from matplotlib import pyplot as plt
import csv 
import numpy as np
import datetime
import pandas as pd
import geopandas as gpd
import csv
from shapefile import Reader 

df1 = pd.read_csv('usco2010.csv') 
#Reads csv file and puts it into a dataframe
df2 = pd.DataFrame({'STATE':df1['STATE'],'COUNTY':df1['COUNTY'],'FIPS':df1['FIPS'],'Se    rPop10^3':df1['TP-TotPop'],'WtrWthdrwl_MGD':df1['PS-WSWFr']})  
#Takes the data we want from df1 and creates a new dataframe df2: Statename, County name, FIPS, Served Population in 1000s, Surface water withdrawls in MGD 


counties = gpd.read_file('UScounties') 
#creates a GeoDataFrame for the US counties by using UScounties shapefile

print(counties.head())
print(df2.head())

counties = counties.merge(df2, on='FIPS') #Empty GeoDataFrame
#merges counties and df2 with same FIPS

print(counties)

GeoDataFrame不应该将来自两个对象的数据合并吗?我想制作一张地表水提取的合唱地图。

对不起,如果我们不应该列出我们使用的数据,我希望尽可能具体。我刚开始使用python,所以如果这是一个简单的问题,我很抱歉,但是google和这个站点上的搜索没有显示出类似的问题已经被回答了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-04 11:34:44

刚刚检查了你的问题。据我所见,问题是您试图在两种不同数据类型的位置上合并的列。您在县数据集中的列是一个类型对象(例如,它包含字符串),而df2"FIPS“是"int64”类型。这就是我所做的,合并的工作。仍然要检查合并是否适当地执行:

代码语言:javascript
复制
us_data = pd.read_csv('usco2010.csv') 
counties = gp.read_file('UScounties.shp') 
counties["FIPS"] = counties["FIPS"].astype(int)
pd.merge(counties, us_data, on="FIPS")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39840337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档