フィルタリングされたセットのすべての行の平均よりも最後の3行の平均が大きいすべてのレコードを取得しようとしています。最後のN値の平均値によるパンダのデータフレームのフィルタリング
_filtered_d_all = _filtered_d.iloc[:, 0:50].loc[:, _filtered_d.mean()>0.05]
_last_n_records = _filtered_d.tail(3)
この
_filtered_growing = _filtered_d.iloc[:, 0:50].loc[:, _last_n_records.mean() > _filtered_d.mean()]
のようなものはしかし、ここでの問題は、値の長さが間違っているということです。任意のヒント?
ValueError: Series lengths must match to compare
サンプルデータ
これは年と月、2列にインデックスを持っています。
Col1 Col2
year month
2005 12 0.533835 0.170679
12 0.494733 0.198347
2006 3 0.440098 0.202240
6 0.410285 0.188421
9 0.502420 0.200188
12 0.522253 0.118680
2007 3 0.378120 0.171192
6 0.431989 0.145158
9 0.612036 0.178097
12 0.519766 0.252196
2008 3 0.547705 0.202163
6 0.560985 0.238591
9 0.617320 0.199537
12 0.343939 0.253855
データフレーム内の最後の3行または前の3行を意味します(つまり、5行目の場合は3,4,5の平均値にする必要があります)。 – RexFuzzle
ええ、そうだよ df = [1、2、3、4、5、6、7] 最後の3つの値の平均がすべての値の平均よりも大きいかどうかを確認するアレイ(:)時系列的に理にかなっている) – Eamonn