私は、日付(datetime.datetime)に関して再インデックス付けしたデータセットを持っています。データフレームの小さなサンプルは次のようになります。df2:パンダは、平均と選択的な時間インデックスをインデックスに入れます。
lat lon Press NetLW
rounded_dt 1997-11-30 17:00:00 76.15387 -147.62606 998.8 -51.0
1997-11-30 18:00:00 76.15280 -147.60379 1000.0 -50.9
1997-11-30 19:00:00 76.15164 -147.58055 1001.1 -54.4
1997-11-30 20:00:00 76.15037 -147.56047 1002.6 -52.2
1997-11-30 21:00:00 76.14948 -147.54034 1004.2 -51.9
1997-11-30 22:00:00 76.14834 -147.52181 1005.5 -51.3
1997-11-30 23:00:00 76.14777 -147.50568 1006.5 -50.7
1997-12-01 06:00:00 76.14152 -147.42073 1013.3 -44.6
1997-12-01 07:00:00 76.14105 -147.41370 1013.8 -45.4
1997-12-01 08:00:00 76.14072 -147.40661 1014.5 -46.1
1997-12-01 09:00:00 76.14059 -147.40093 1015.0 -43.0
したがって、時系列は毎時1年ごとに続きます。
私の目標は何ですか?
Iは日の特定の範囲についてのみそれらの日の11時間及び23時間NetLWに基づいてデータを抽出したいです。しかし、その時のNetLWは、11時間はNetLW(10時間)、NetLW(11時間)、NetLW(12時間)で平均化されるべきだとします。
私がこれまで行ってきたことは?
df3 = df2.rolling(window=3, center=True).mean() # to get the rolling mean
# I want to extract the dates of interest from df3
dates_list =[]
for idx in df2.index:
# Winter dates (Dec-March)
if idx > datetime.datetime(1997, 11, 30, 23) and idx < datetime.datetime(1998, 3, 1, 0):
if idx.hour ==11 or idx.hour == 23:
dates_list.append(df3[df3.loc[idx, 'NetLW'] < -30.0])
そして、私は1シリーズ/データフレームでdates_listを連結し、日付
得ることができるエラーメッセージ KeyError例外:上記の例外の取り扱い中
真、別の例外が発生しました
そして、それは、この行を指す:私が使用することを期待してい
---> dates_list.append(DF3 [df3.loc [IDX、 'NetLW'] < -30.0])
boolean dtypeをdf3のインデックスとして使用し、データを抽出します。
また、複数のループを書くのではなく、私が興味を持っている時間をグループ化することができれば、私がパンダの新人として知らせてください。
感謝を。しかし、2行目で私にこのエラーが返されます: ValueError:複数の要素を持つ配列の真理値があいまいです。 a.any()またはa.all() –
ああを使用してください。 Erm ..それはかなり自由に書かれましたが、それは理にかなっています。私は少しあなたに戻ってきます – Uvar
@ Light_B私は比較の要素を作ることを忘れていました。 – Uvar