[英]How to merge a list of dbf tables into one in Python?
我想將我的“輸出”文件夾中的許多 dbf 表合並到一個表中。 這是我的代碼,但它不起作用(錯誤如下所示)。:
import arcpy
import os
arcpy.env.workspace="C:\\Users\\Desktop\\Betty\\Output"
listTable = arcpy.ListTables ()
arcpy.Merge_management (listTable, 'C:\\Users\\Desktop\\Betty\\Output\\ppt.dbf')
print "done!"
Traceback(最近一次調用最后):文件“C:\Users\caobaijing\Desktop\Betty\Python\MergeTables.py”,第 7 行,在 arcpy.Merge_management (listTable, "C:\Users\caobaijing\Desktop\Betty\ Output\ppt.dbf") 文件“C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy\arcpy\management.py”,第 3762 行,Merge raise e ExecuteError: Failed to execute。 參數無效。 錯誤 000732:輸入數據集:數據集* * 不存在或不受支持無法執行(合並)。
對於發現這一點的其他人,代碼工作得很好。 一定是路徑錯誤或工作空間目錄中沒有 dbfs。
import arcpy
arcpy.env.workspace = 'C:/junk/tables'
listTable = arcpy.ListTables()
arcpy.Merge_management(listTable, 'C:/junk/tables/ppt.dbf')
print "done!"
上面的答案對我不起作用,listTable 不斷返回空白結果。 使用帶有 *.dbf 通配符的 ListFiles 就可以了。
我使用 filezilla 從ftp://ftp2.census.gov/geo/tiger/TIGER2014/PLACEEC/下載了一堆壓縮的 shapefile
我將它們解壓縮到一個目錄 (C:/Temp) 中,以便所有 shapefile 都在一個文件夾中。 我有 7-zip,所以我只是選擇了所有的 zip 文件,右鍵單擊 -> 7-zip -> 在此處提取。
import arcpy
arcpy.env.workspace = "C:/Temp"
files = arcpy.ListFiles ( "*.dbf")
arcpy.Merge_management ( files, "C:/Temp/output.dbf" )
我在 excel 中打開了 output.dbf,我把所有的數據放在了一起。
給定一個包含 dbf 文件的文件夾,將它們全部合並到一個 df 中:
import pandas as pd
from simpledbf import Dbf5
import glob
# list all files
path = r'./dbf_folder/'
files = glob.glob(path + "\*.dbf")
# init empty df
merge = pd.DataFrame()
for file in files:
# load dbf into pandas df
df = Dbf5(file).to_dataframe()
# append df
merge = merge.append(
df, ignore_index=True)
# save to excel?
#merge.to_excel(r'Merge.xlsx', index=False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.