So habe ich Daten von einem SQL-Server abgerufen und in einen Datenrahmen eingegeben. Alle Daten haben eine diskrete Form und erhöhen sich um 0,1 Schritte in einer Richtung (0,0, 0,1, 0,2 ... 9,8, 9,9, 10,0) mit mehreren Leistungswerten für jeden Schritt (z. B. 1000, 1412, 134,5, 657,1 at 0,1), (14,5, 948,1, 343,8 bei 5,5) - hoffentlich siehst du, was ich sagen will.Müssen Sie einen Pandas (Python) Datenrahmen mit Werten von einem anderen Datenrahmen vergleichen
Ich habe es geschafft, die Daten in diese einzelnen Schritte mit den folgenden zu gruppieren, und haben dann den Mittelwert und die Standardabweichung für jede Gruppe genommen.
group = df.groupby('step').power.mean() group2 = df.groupby('step').power.std().fillna(0)
Dies führt zu zwei Datenrahmen (Gruppe und group2), die den Mittelwert und die Standardabweichung für jede der Stufen 0,1 aufweisen. Es ist dann einfach, eine obere und untere Grenze für jeden Schritt mit dem folgenden zu erstellen:
upperlimit = group + 3*group2 lowerlimit = group - 3*group2 lowerlimit[lowerlimit<0] = 0
Jetzt kommt das Bit Ich bin verwirrt über! Ich muss zurück in den ursprünglichen Datenrahmen gehen und Zeilen/Instanzen entfernen, in denen der Leistungswert außerhalb dieser berechneten Grenzen liegt (beachten Sie, dass es für jeden 0,1 Schritt eine andere obere und untere Grenze gibt).
Hier ist 50 Zeilen der Beispieldaten:
Index Power Step
0 106.0 5.0
1 200.4 5.5
2 201.4 5.6
3 226.9 5.6
4 206.8 5.6
5 177.5 5.3
6 124.0 4.9
7 121.0 4.8
8 93.9 4.7
9 135.6 5.0
10 211.1 5.6
11 265.2 6.0
12 281.4 6.2
13 417.9 6.9
14 546.0 7.4
15 619.9 7.9
16 404.4 7.1
17 241.4 5.8
18 44.3 3.9
19 72.1 4.6
20 21.1 3.3
21 6.3 2.3
22 0.0 0.8
23 0.0 0.9
24 0.0 3.2
25 0.0 4.6
26 33.3 4.2
27 97.7 4.7
28 91.0 4.7
29 105.6 4.8
30 97.4 4.6
31 126.7 5.0
32 134.3 5.0
33 133.4 5.1
34 301.8 6.3
35 298.5 6.3
36 312.1 6.5
37 505.3 7.5
38 491.8 7.3
39 404.6 6.8
40 324.3 6.6
41 347.2 6.7
42 365.3 6.8
43 279.7 6.3
44 351.4 6.8
45 350.1 6.7
46 573.5 7.9
47 490.1 7.5
48 520.4 7.6
49 548.2 7.9
Veröffentlichen Sie Ihre Daten und Proben Ihres Datenrahmen. Googeln Sie auch die Pandas.DataFrame.Lookup() -Funktion. – Chuck
Post 'group' und' group2' Sie müssen so viele Informationen wie hilfreich und relevant geben. – Chuck