将 Pandas 数据帧写入 DBF 文件?

Write Pandas Dataframe to DBF File?

我正在使用 shapefile,它的属性数据存储在 DBF 文件中。我需要使用 Pandas 操作属性,并将新的 DBF 数据写回磁盘。

不幸的是 Pandas 数据帧没有 df.to_dbf 方法(而 R 有)。我四处寻找,但似乎没有看到任何明显的方法来完成这项任务。

如何将 pandas 数据帧保存为 DBF 文件?

您应该考虑使用 rpy2 将数据框转换为 R 对象,然后 运行 像这样:

from rpy2.robjects import pandas2ri
pandas2ri.activate()
from rpy2.robjects.packages import importr
base = importr('base')
base.write.dbf(df)

应该可以无缝工作,我希望!

到目前为止,加载、操作和保存与 shapefile 关联的 dbf 文件的最简单方法是使用 GeoPandas 库。这可以将 dbf 作为数据帧加载:

gf = gpd.read_file('some_shapefile.shp')

然后您可以使用标准 Pandas 命令处理所有数据,并使用以下命令将数据导出为 Shapefile(或其他地理文件):

gf.to_file('export.shp')

太棒了!