因此,我從一個sql server中提取數據,並將其輸入到數據框中。所有的數據都是離散形式,並且在一個方向上以0.1步增加(0.0,0.1,0.2 ... 9.8,9.9,10.0),每個步的多個功率值(例如1000,1412,134.5,657.1 0.1),(14.5,948.1,343.8 at 5.5) - 希望你能看到我想說的話。需要比較一個熊貓(Python)數據幀與另一個數據幀的值
我已經設法將數據分組到這些單獨的步驟,使用以下,然後採取每組的平均值和標準差。
group = df.groupby('step').power.mean() group2 = df.groupby('step').power.std().fillna(0)
這導致在具有用於每個0.1步驟的平均值和標準偏差兩個數據幀(組和第2組)。它當時很容易使用,以創建每一步的上限和下限如下:
upperlimit = group + 3*group2 lowerlimit = group - 3*group2 lowerlimit[lowerlimit<0] = 0
現在來我感到困惑的一點!我需要回到原始數據框中,並移除功率值超出這些計算極限的行/實例(注意每個0.1步有不同的上限和下限)。
下面是50條線的樣本數據:
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
安置自己的數據和樣品。另外谷歌Pandas.DataFrame.Lookup()函數。 – Chuck
發佈'group'和'group2'您需要儘可能多地提供有用和相關的信息。 – Chuck