合并geopandas数据框并转换为json会引发“达到最大递归级别”错误

时间:2020-09-08 07:51:37

标签: pandas geopandas

Dataframe df包含以下列:

['country_code', 'confirmed_cases', 'count_date']

gdf(geopandas数据框)包含以下列:

['country_code', 'geometry']

以下所有工作:

df.to_json()
gdf.to_json()
gdf.geometry.to_json()

但是当我合并两者时,我无法转换为json。

merged_df = df.merge(gdf, how='left')

merged_df.country_code.to_json() #works
merged_df.count_date.to_json() #works
merged_df.confirmed_cases.to_json() #works

merged_df.to_json() #THROWS MAX RECURSION ERROR
merged_df.geometry.to_json() #THROWS MAX RECURSION ERROR
merged_df.iloc[:1].to_json() #THROWS MAX RECURSION ERROR

为什么相同的“ geometry”列在两个数据框中的行为不同?

1 个答案:

答案 0 :(得分:0)

以另一种方式合并文件。由于gdf是GeoDataFrame,因此to_json必须处理几何列。熊猫本身不能做到这一点。如果像以前那样将gdf合并到df,则结果是pandas.DataFrame。如果以其他方式合并,则结果将是geopandas.GeoDataFrame,它可以处理将几何导出到json。

merged_df = gdf.merge(df, how='right')