Geopandas .merge()产生奇怪的结果

时间:2019-12-09 21:08:26

标签: python pandas geopandas

我一直试图基于一个列合并两个geopandas数据框,并且得到了一些非常奇怪的结果。为了测试这一点,我制作了两个简单的数据框,并将它们合并:

import pandas as pd
import geopandas as gpd

df = pd.DataFrame(
    {'City': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 'Caracas'],
     'Country': ['Argentina', 'Brazil', 'Chile', 'Colombia', 'Venezuela'],
     'Latitude': [-34.58, -15.78, -33.45, 4.60, 10.48],
     'Longitude': [-58.66, -47.91, -70.66, -74.08, -66.86]})

gdf = gpd.GeoDataFrame(
    df, geometry=gpd.points_from_xy(df.Longitude, df.Latitude))

df2 = pd.DataFrame(
    {'Capital': ['Buenos Aires', 'Brasilia', 'Santiago', 'Bogota', 
     'Caracas'],
     'Abbreviation': ['ARG', 'BRA', 'CHI', 'COL', 'VZL']})

combined_df = gdf.merge(df2, left_on='City', right_on='Capital')

print(combined_df)

打印结果时,我得到了预期的结果:

           City    Country  ...       Capital  Abbreviation
0  Buenos Aires  Argentina  ...  Buenos Aires           ARG
1      Brasilia     Brazil  ...      Brasilia           BRA
2      Santiago      Chile  ...      Santiago           CHI
3        Bogota   Colombia  ...        Bogota           COL
4       Caracas  Venezuela  ...       Caracas           VZL

这两个数据集基于它们的公共列(“城市”列和“资本”列)合并。

我还有一些其他数据正在使用。 Here is a link to it

这两个文件都是我以地理数据框形式阅读的地理包。数据框1具有16166行。数据框2具有15511行。他们有一个共同的ID列,“ ALTPARNO”和“ altparno”。这是我尝试用来阅读并合并它们的代码:

import geopandas as gpd

dataframe1 = gpd.read_file(filepath, layer='allkeepers_2019')
dataframe2 = gpd.read_file(filepath, layer='keepers_2019')

results = dataframe1.merge(dataframe2, left_on='altparno', right_on='ALTPARNO')

当我查看结果时,我有一个超过400万行的数据框(应该是15,000行)。

这是怎么回事?

0 个答案:

没有答案