df umstrukturieren

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Progressive
User
Beiträge: 16
Registriert: Dienstag 25. Juni 2019, 05:43

Ich habe ein df der Form:

Code: Alles auswählen

                           deviceid	dataobjectname	aggregation	timestamp	assetid	charttype datatype qualityratio	unit	value
15852256	TG10129	A_phsC	none	2018-02-02 14:16	1	S1	Line	Double	1.000000	Ampere	8.460000e+02
15852255	TG10129	A_phsC	none	2018-02-02 14:16	1	S1	Line	Double	1.000000	Ampere	8.380000e+02
(...)
27	BM10128	AbsReactPh2	mean_900000	2018-10-12 00:15	2	S2	Line	Double	0.955551	Farad	2.430000e-10
26	BM10128	AbsReactPh2	mean_900000	2018-10-12 03:00	2	S2	Line	Double	0.944449	Farad	2.430000e-10
(..)
Unter

Code: Alles auswählen

dataobjectname 
verstecken sich insgesamt 65 Größen. Ich würde das df gerne umstrukturieren, damit ich die Verteilungen plotten kannn. Die Größen unter

Code: Alles auswählen

dataobjectname = [A_phsC, (...), AbsReactPh2]
repräsentieren physikalische Messgrößen, die ich letztlich plotten möchte. Aktuell sind halt alle einzigen Messgrößen zeilenweise gespeichert worden, was das Plotten usw. erschwert bzw. unmöglich macht. Daher versuche ich die Daten in ein besseres Format umzuwandeln. Angesehen habe ich mir bislang
df.T
df.pivot_table
pd.melt
und reshape()
Es gelingt mir allerdings nie so, wie ich es gerne hätte. Am besten gefällt mir noch

Code: Alles auswählen

pd.pivot_table(example, index = ["assetname", "deviceid", "timestamp"], columns = "dataobjectname", values = "value").reset_index()
Das führt zu.

Code: Alles auswählen

dataobjectname	deviceid	timestamp	A_phsA (...) AbsReactPh2
Das ist prinzipiell ja dem schon sehr nahe, was ich suche. Dort werden aber irgendwie nur 29/65 physikalischen Größen als Spalten angegeben. Was ist mit den anderen passiert?

Oder habt Ihr eine bessere Idee?
Antworten