2017-01-27 1 views
4

Ich möchte eine dbf Datei eines ArcGIS-Shapefile lesen und es in einen pandas Datenrahmen ablegen. Ich verwende derzeit das dbf Paket.Pandas: Transformieren einer DBF-Tabelle in einen Datenrahmen

Ich habe anscheinend in der Lage, die dbf Datei als eine Tabelle zu laden, aber war nicht in der Lage, herauszufinden, wie man es analysieren und es in einen Pandas Dataframe verwandeln kann. Wie ist es zu machen?

Dies ist, wo ich stecke an:

import dbf 
thisTable = dbf.Table('C:\\Users\\myfolder\\project\\myfile.dbf') 
thisTable.open(mode='read-only') 

Python gibt diese Anweisung als Ausgabe, die ich ehrlich gesagt nicht wissen, was von machen:

dbf.ver_2.Table('C:\\Users\\myfolder\\project\\myfile.dbf', status='read-only')


EDIT

Beispiel meines ursprünglichen dbf:

FID Shape E    N 
0  Point 90089.518711 -201738.245555 
1  Point 93961.324059 -200676.766517 
2  Point 97836.321204 -199614.270439 
... ...  ...   ... 
+0

Mögen Sie eine Probe Ihres ursprünglichen DBF-Datei zu tun schreiben? –

+0

@FabioLamanna Überprüfen Sie meine Bearbeitung. Vielen Dank. – FaCoffee

+1

@ CF84, möchten Sie vielleicht lesen [diesen Artikel] (http://joelmccune.com/arcgis-to-pandas-data-frame/) – MaxU

Antwort

6

Sie sollten einen Blick auf simpledbf haben:

In [2]: import pandas as pd 

In [3]: from simpledbf import Dbf5 

In [4]: dbf = Dbf5('test.dbf') 

In [5]: df = dbf.to_dataframe() 

Dies funktioniert für mich mit einer kleinen Probe DBF-Datei. Ich hoffe, das hilft.

+1

sehr saubere Antwort! – MaxU

+0

@FabioLamanna Warum wird das Feld 'FID' nicht in das' df' eingelesen? Im Wesentlichen sind alles, was ich sehe, nur die Felder "E" und "N". Wie stelle ich sicher, dass * alle * Felder gelesen werden? – FaCoffee

+0

@ CF84 vielleicht wird es als der Index des DataFrame betrachtet? –

Verwandte Themen