Ich habe ein Pandas Datenrahmen mit Multiindex Ebenen, die wie folgt aussieht:Format Datenrahmen rudern orientierte JSON-Objekt (Tabelle Stil Pivot-Tabelle)
Und jetzt versuche ich zu konvertieren dieser Datenrahmen in ein zeilenorientierte JSON-Objekt (oder spreadsheet-style pivot table?), wobei das Ergebnis wie folgt aussehen soll:
[{"date":"2016-11-08T23:00:00.000Z", "flag":0, "value":545.0, "moduleId":"module_A","parameterId":"parameter_B", "locationId":"location_1" },
{"date":"2016-11-09T23:00:00.000Z", "flag":0, "value":545.0, "moduleId":"module_A","parameterId":"parameter_B", "locationId":"location_1" },
{"date":"2016-11-10T23:00:00.000Z", "flag":8, "value":-999.0, "moduleId":"module_A","parameterId":"parameter_B", "locationId":"location_1" },
{"date":"2016-11-11T23:00:00.000Z", "flag":0, "value":680.0, "moduleId":"module_A","parameterId":"parameter_B", "locationId":"location_1" },
{"date":"2016-11-12T23:00:00.000Z", "flag":8, "value":-999.0, "moduleId":"module_A","parameterId":"parameter_B", "locationId":"location_1" }]
ich hat versucht, den folgenden Befehl
zu verwenden,df.reset_index().to_json(orient='records', date_format='iso')
aber dann bleibt die Struktur MultiIndex intakt.
würde sehr geschätztimport pandas as pd
from pandas import Timestamp
input_dict = {('module_A',
'parameter_B',
'location_1',
'flag'): { Timestamp('2016-11-09 05:30:00+0630', tz='Asia/Yangon'): 0,
Timestamp('2016-11-10 05:30:00+0630', tz='Asia/Yangon'): 0,
Timestamp('2016-11-11 05:30:00+0630', tz='Asia/Yangon'): 8,
Timestamp('2016-11-12 05:30:00+0630', tz='Asia/Yangon'): 0,
Timestamp('2016-11-13 05:30:00+0630', tz='Asia/Yangon'): 8},
('module_A',
'parameter_B',
'location_1',
'value'): { Timestamp('2016-11-09 05:30:00+0630', tz='Asia/Yangon'): 545.0,
Timestamp('2016-11-10 05:30:00+0630', tz='Asia/Yangon'): 545.0,
Timestamp('2016-11-11 05:30:00+0630', tz='Asia/Yangon'): -999.0,
Timestamp('2016-11-12 05:30:00+0630', tz='Asia/Yangon'): 680.0,
Timestamp('2016-11-13 05:30:00+0630', tz='Asia/Yangon'): -999.0}}
df = pd.DataFrame(input_dict)
Jeder Vorschlag:
Das oben verwendete Dummy-Set kann wie folgt erstellt werden.
Wow! Das ist noch weniger Code, als ich erwartet habe. Kann sogar ein One-Liner sein. Das ist toll – Mattijn