0

1991 年から 2021 年までの月次データの長期平均から変動性を見つける必要があります。204,3 サイズの次のようなデータがあります。

dfavgs = 
     plant_name  month     power_kwh
0     ARIZONA I      1  10655.989885
1     ARIZONA I      2   9789.542672
2     ARIZONA I      3   7889.403154
3     ARIZONA I      4   7965.595843
4     ARIZONA I      5   9299.316756
..          ...    ...           ...
199  SANTANA II      8  16753.999870
200  SANTANA II      9  17767.383616
201  SANTANA II     10  17430.005363
202  SANTANA II     11  16628.784139
203  SANTANA II     12  15167.085560  

私の大きな月ごとの年ごとの df は、サイズ 6137,4 で次のようになります。

dfmonthlys:
      plant_name  year  month     power_kwh
0      ARIZONA I  1991      1   9256.304704
1      ARIZONA I  1991      2   8851.689732
2      ARIZONA I  1991      3   7649.949328
3      ARIZONA I  1991      4   6728.544028
4      ARIZONA I  1991      5   8601.165457
     ...   ...    ...           ...
6132  SANTANA II  2020      9  16481.202361
6133  SANTANA II  2020     10  15644.358737
6134  SANTANA II  2020     11  14368.804306
6135  SANTANA II  2020     12  15473.958468
6136  SANTANA II  2021      1  13161.219086

私の新しい df "dfvar" は、年ごとの長期平均からの月ごとの偏差を示す次のようになります。以下の値は正しくないと思います。

  plant_name  year  month       Var
0  ARIZONA I  1991      1 -0.250259
1  ARIZONA I  1991      2 -0.283032
2  ARIZONA I  1991      3 -0.380370
3  ARIZONA I  1991      4 -0.455002
4  ARIZONA I  1991      5 -0.303324

MATLABでこれを簡単に行うことができましたが、学ぶ必要があるパンダを使用してこれを行う方法がわかりません。どうもありがとうございました。以下でこれを試してみましたが、シリーズが得られましたが、最後の行に予期しない NaN があるようです:

t = dfmonthlys['power_kwh']/dfavgs.loc[:,'power_kwh'] - 1

上記の出力は次のようになります。

t
Out[159]: 
0      -0.131352
1      -0.095802
2      -0.030351
3      -0.155299
4      -0.075076

6132         NaN
6133         NaN
6134         NaN
6135         NaN
6136         NaN
Name: power_kwh, Length: 6137, dtype: float64
4

1 に答える 1