Ich habe eine CSV mit einer Reihe von Daten. Eine der Spalten ExtraParams
enthält ein JSON-Objekt. Ich möchte einen Wert mit einem bestimmten Schlüssel extrahieren, aber es dauert eine Weile, bis ich die 60.000 Zeilen in der CSV-Datei gelesen habe. Kann es beschleunigt werden?Wert aus JSON-Spalte extrahieren sehr langsam
counter = 0 #just to see where I'm at
order_data['NewColumn'] = ''
for row in range(len(total_data)):
s = total_data['ExtraParams'][row]
try:
data = json.loads(s)
new_data = data['NewColumn']
counter += 1
print(counter)
order_data['NewColumn'][row] = new_data
except:
print('NewColumn not in row')
Ich benutze eine try-except, weil einige der Reihen haben, was ich davon ausgehen, ist JSON vermasselt, wie sie das Programm mit einem „erwarten Trennzeichen‚‘“ abstürzen Fehler.
Wenn ich sage "langsam" meine ich ~ 30 Minuten für 60.000rows.
EDIT: Es könnte nichts wert sein jeder JSON enthält etwa 35 Schlüssel/Wert-Paare.
können Sie ein Beispiel für Ihre JSON teilen? – MedAli
Weder JSON noch CSV werden für große Dateien erstellt. Sie sollten überlegen, die Daten in eine Datenbank zu importieren und von dort zu verarbeiten. Es könnte eine gute Idee sein, einen DB-Server mit JSON-Unterstützung zu verwenden. –
@KlausD. Das ist wahrscheinlich die beste Idee, ja. Ich konnte niemanden finden, der effizient das tut, was ich ausschließlich mit Python/Pandas für einen großen Datensatz machen möchte. [This] (https://stackoverflow.com/questions/14262433/large-data-work-flows-using-pandas) Post könnte jedoch eine Lösung bieten. – Khaine775