2017-01-27 1 views
4

Je souhaite lire un fichier dbf d'un fichier de formes ArcGIS et le vider dans une zone de données pandas. J'utilise actuellement le paquet dbf.Pandas: transformer une table dbf en une base de données

J'ai apparemment pu charger le fichier dbf en tant que Table, mais je n'ai pas réussi à comprendre comment l'analyser et le transformer en une base de données pandas. Quelle est la façon de le faire?

C'est là où je suis coincé à:

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

Python renvoie cette déclaration en tant que sortie, que je ne sais pas franchement quoi faire de:

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


EDIT

Exemple de mon original dbf:

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

Puissiez-vous poster un échantillon de votre fichier .dbf original? –

+0

@FabioLamanna Vérifier mes modifications. Merci. – FaCoffee

+1

@ CF84, vous pouvez lire [cet article] (http://joelmccune.com/arcgis-to-pandas-data-frame/) – MaxU

Répondre

6

Vous devriez jeter un oeil à simpledbf:

In [2]: import pandas as pd 

In [3]: from simpledbf import Dbf5 

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

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

Cela fonctionne pour moi avec un petit exemple de fichier .dbf. J'espère que cela pourra aider.

+1

très bonne réponse! – MaxU

+0

@FabioLamanna Pourquoi est-ce que le champ 'FID' n'est pas lu dans' df'? Donc, en substance, tout ce que je vois sont juste les champs 'E' et' N'. Comment s'assurer que tous les champs * sont lus? – FaCoffee

+0

@ CF84 peut-être il est considéré comme l'indice de la DataFrame? –