私はpandas.date_rangeから生成されたDatetimeIndex
に基づいて、マルチインデックスDataFrame
にいくつかの集約をしようとしています。 DatetimeIndex
でパンダMultiIndex集約
value
date id
2000-05-31 1 0
2 1
3 1
2000-06-30 2 1
3 0
4 0
2000-07-30 2 1
4 0
1 0
2002-09-30 1 1
3 1
日付は、日付インデックスであってもなくてもよい:DateFrame
はこのようになります
DatetimeIndex(['2000-05-30', '2000-05-31', '2000-06-01' ... '2001-1-31'])
そして、私のマルチインデックスを:
は私のDatetimeIndex
は、このようになります。
value==1
のパーセンテージがいくつかの10進数のしきい値以上になるようにid
をすべて取得する必要があります。そのid
の日付がDatetimeIndex
にあるすべての行については、0.6
です。例えば
閾値が0.5
ある場合、出力は[2, 3]
又は2
と3
を含むいくつかのDataFrame
であるべきです。
1
は、2002-09-30
がDatetimeIndex
にないため、要件を満たしていません。
私は、各IDに対してvalue==1
の頻度を記録するためのループと2分の1の解決策を持っていますが、非常に遅く実行されます。
pandas
を使用してこの集約を実行するにはどうすればよいですか?
ありがとうございます。
を、私は私の質問は少し不明であったと思うが、私はDATE_RANGE内のすべての日付の平均値> 0.6でIDを取得しようとしています – bphi
はい、あなたは正しいです。いくつかのことは私には不明でした。 rng = pd.date_range( '2000-05-30'、 '2000-7-01') 'と範囲' 0.5'のサンプルデータの出力はどれですか? – jezrael
id 1は、date_range、平均(id 2)= 1、平均(id 3)= 0.5、平均(id 4)= 0の日付の平均値が0です。したがって、しきい値が0.5の場合、 2、3' – bphi