如何在 Python 中将 GeoDataFrame 保存到磁盘?
How can I save a GeoDataFrame to disk in Python?
我有一个名为 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())
我有一个名为 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())