2017-07-19 18 views
-1

Es scheint mir, dass es für Pandas unmittelbar nützlich wäre, die Idee der Projektion (Auslassen oder Auswählen von Spalten) während der Datenanalyse zu unterstützen.Pandas JSON Daten Parsing Projektion

Viele JSON-Datasets, die ich finde, haben eine Tonne überflüssiger Felder, die ich nicht brauche, oder ich muss ein bestimmtes Feld in der verschachtelten Struktur analysieren.

Was ich derzeit mache ist Pipe durch jq, um eine Datei zu erstellen, die nur die Felder enthält, die ich brauche. Dies wird zur "bereinigten" Datei.

Ich würde ein Verfahren vorziehen, wo ich nicht eine neue gereinigt Datei jedes Mal, wenn ich an einer bestimmten Facette aussehen wollen schaffen hatte oder von Facetten gesetzt, aber ich könnte stattdessen Pandas erzählen die JSON Pfad .data.interesting und nur laden Projektfelder: A B C.

Als Beispiel:

{ 
"data": { 
    "not interesting": ["milk", "yogurt", "dirt"], 
    "interesting": [{ "A": "moonlanding", "B": "1956", "C": 100000, "D": "meh" }] 
} 

Antwort

0

Leider scheint es, als gäbe es keine einfache Möglichkeit, es auf Last zu tun, aber wenn Sie es unmittelbar nach dem mit dem Tun gut gehen ...

# drop by index 
df.drop(df.columns[[1, 2]], axis=1, inplace=True) 

# drop by name 
df.drop(['B', 'C'], axis=1, inplace=True) 
+0

Seufz, das ist die Schlussfolgerung, zu der ich auch gekommen bin. – Breedly

+0

Erhalten Sie einen großen Leistungseinbruch, indem Sie diese Spalten nicht auslassen? – itsmichaelwang

+0

Eigentlich warten, löst 'usecols' dein Problem? https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html – itsmichaelwang