python - 如何在 Python 中将 GeoDataFrame 保存到磁盘?

标签 python json pandas save geopandas

我有一个名为 merged 的 GeoDataFrame,但我很难将其保存到磁盘。
merged 是通过这个循环获得的:

import pandas as pd
import geopandas as gpd
import osmnx as ox

city=gpd.read_file('C:/folder/city.json')
circ=[]

for i in (0, 1):
    graph = ox.graph_from_polygon(city.geometry[i])
    stat = ox.basic_stats(graph)
    circ.append(stat['circuity_avg'])

circ=pd.Series(circ)
merged=pd.concat([city, circ], axis=1)

我只是想将 merged 保存到一个文件中,作为 json 文件或保留几何形状的其他格式,以便我可以在 R 中使用数据。以下是我使用的方法尝试过:

1.

merged.to_file('merged.json', driver='GeoJSON')

这给出了

Attribute Error 'int' object has no attribute 'encode'

有谁知道为什么 merged 被归类为“int”,而它是一个 GeoDataFrame(这就是我执行 type(merged) 时所指示的内容)?

2.

with open('x.geojson', 'w') as f:
        f.write(merged_short.to_json())

这会在我的 Jupyter Lab 环境中创建一个 x.geojson 文件,但不会将其保存到磁盘。这是可以理解的,因为我没有指定保存路径。但是,我不知道如何添加路径。

3.

merged.to_csv("C:/folder/merged.cs")

这可行,但由于数据保存为 csv,因此不会保留几何图形。

4.

merged.to_json("C:/folder/merged.cs")

但这给出了ValueError: Unknown na method

我很惊讶我还没有找到一种简单的方法将 GeoDataFrames 保存到我的计算机上的文件中。有没有简单的方法来保存GeoDataFrames?

解决方案

with open('C:/folder/merged.json', 'w') as f:
        f.write(merged_short.to_json())

这意味着我只需要指定完整路径。

最佳答案

您的版本 2 将保存文件,但保存到相对位置。尝试提供绝对路径:

with open('C:/folder/x.geojson', 'w') as f:
    f.write(merged_short.to_json())

关于python - 如何在 Python 中将 GeoDataFrame 保存到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60243051/

相关文章:

python 无法解码抑扬符

json - 从字典键中提取值 - 然后组合成一个对象

python Pandas : pivoting columns to rows

c# - 从 C# 代码激活 conda 环境(或者手动打开 cmd 和从 C# 打开它有什么区别?)

python - URL 处出现 NoReverseMatch 错误,X 未注册命名空间

c# - WCF服务中具有C#的json?

python - 将字典/json 键转换为 MongoDB 可接受的最快方法(将 "."和 "$"转换为其他内容)

python - 将 DataFrame 转换为字典,其中标题为键,列为带有值的数组

python - python multiandas排序后的 Pandas groupby不正确

python - heapq 库中函数的时间复杂度是多少