Ich habe eine pandas.DataFrame die wie folgt aussieht:Zuweisen eines Satzes von Daten in Datenrahmen pandas auf einen Satz von Zuständen (Intervalle)
mean std
0 0.123933 0.012185
1 0.119992 0.023833
2 0.119150 0.005884
4 0.107363 0.014191
8 0.123733 0.017090
12 0.155717 0.021808
18 0.337767 0.029997
24 0.742300 0.094091
30 1.087750 0.175827
36 1.517833 0.196728
42 1.181283 0.179431
48 1.936333 0.102685
I jede Zeile einem Zustand zugeordnet werden soll, die definiert ist durch Intervalle. d.h.
'''
Produce 11 numbers for 10 intervals between 0 and 2.
i.e. first interval is between intervals[0] and intervals[1]
'''
intervals= numpy.linspace(0,2,11)
>>>list(intervals)
[0.0,
0.20000000000000001,
0.40000000000000002,
0.60000000000000009,
0.80000000000000004,
1.0,
1.2000000000000002,
1.4000000000000001,
1.6000000000000001,
1.8,
2.0]
Diese Zustände haben Etiketten, so index=0
in dem Datenrahmen in den ersten Zustand (S1) ext gehören würde.
Was ist der beste Weg, dies in Python zu implementieren? Ich schaue derzeit numpy.histogram
, aber dies gibt die Häufigkeit in jedem Fach, anstatt den Namen des Behälters.
Die gewünschte Ausgabe würde so etwas wie:
mean std state
0 0.123933 0.012185 s1
1 0.119992 0.023833 s1
2 0.119150 0.005884 s1
4 0.107363 0.014191 s1
8 0.123733 0.017090 s1
12 0.155717 0.021808 s2
18 0.337767 0.029997 s2
24 0.742300 0.094091 s4
30 1.087750 0.175827 ...
36 1.517833 0.196728
42 1.181283 0.179431
48 1.936333 0.102685
Wie Bestimmen Sie den Zustand? Schaust du nur auf die mittlere Spalte und siehst, in welchem Intervall es ist? Wenn ja, bekomme ich nicht dein drittes Beispiel? Der Mittelwert ist "0.158350", was "s1" sein sollte? – root
Hallo Wurzel. Danke, dass du darauf hingewiesen hast. Es ist ein Fehler. Dein Recht, in welchem Intervall der Mittelwert liegt. – CiaranWelsh