私はパンダの一族の指導者から助けが必要です。 私はこのデータセットを有する:パンダは不均等な長さのグループを平均化するのに役立ちます
私は基本的にグループなどの値ができdf1 = pd.DataFrame({
"phase" : ["PH1", "PH1", "PH1", "PH1", "PH1" , "PH1", "PH1"] ,
"sname" : ["CB01R", "CB01R", "CB01R", "CB01R", "CB01R", "CB01R", "CB01R"] ,
"patid" : ["PG01", "PG01","PG01", "PG02", "PG02", "PG02","PG02"] ,
"vbins" : [0., 50., 80., 0., 50., 80., 90.] ,
"vprob" : [100., 60., 0., 100., 60., 10., 0.] ,
})
:
patid phase sname vbins vprob
0 PG01 PH1 CB01R 0 100
1 PG01 PH1 CB01R 50 60
2 PG01 PH1 CB01R 80 0
と
patid phase sname vbins vprob
3 PG02 PH1 CB01R 0 100
4 PG02 PH1 CB01R 50 60
5 PG02 PH1 CB01R 80 10
6 PG02 PH1 CB01R 90 0
は、所望の結果が以下のようにvbinsとvprobを平均化することです。
phase sname vbins vprob
PH1 CB01R 0.5*(0+0) 0.5*(100+100)
0.5*(50+50) 0.5*(60+60)
0.5*(80+80) 0.5*(0+10)
0.5*(NaN+90) 0.5*(NaN+0)
ここで、平均はグループを超え、NaNは等しくない長さに使用されます。私はグループを取得するためにdf1.groupby(['phase', 'sname', 'patid'])
を試した後、目的の平均化を処理する関数を実装していませんでした。
「NaN + 0」はあなたに何を与えるべきですか? 0またはNaN? – Psidom
私に0を与えるべきです、申し訳ありません、私はそれを明確にしませんでした。 – user1301295