簡體   English   中英

如何在 Python 中將 dbf 表列表合並為一個?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM