2
私は基本的に私は私のグループ化された要素の和を取得しています私に df.groupby(['grp1','grp2'])['mycol'].sum()
テイク最大
以下のようなGROUPBY出力を与えるループにしています。
私は各反復からmax
を取りたい
grp1 grp2
A 1 20
D 3 40
E 4 30
1 90
F 1 40
以下のように私はグループ化されたDFを得ることができ、次の繰り返しで今
grp1 grp2
A 1 10
B 1 20
C 2 30
D 3 40
E 4 50
1 60
。 だから2回目の繰り返しの後、私はそうグループは、5回の反復と言う時のピーク値に達した私は年末までに
grp1 grp2
A 1 20 #because 20 was higher than 10
B 1 20 #carried as it is
C 2 30 #carried as it is
D 3 40 #carried as it is (both were equal)
E 4 30 #because 90+30 >50+60
1 90
F 1 40 #added
のような出力を持っています。 これはまっすぐに聞こえる(今まで見た最大の動きを記録する)が、これに近づく方法は得られていない。 私はdf.groupby(['grp1','grp2'])['mycol'].sum().to_dict()
をやってみました。新しいdfを読むときにdictを更新するようなことをしました。 (ちょうど試して、どのように更新された辞書を維持するかわからない)または多分私はまだ知りません単純なpandas and np
ソリューションがあります。
感謝::-)
.max()
で、インデックス(pd.Series.groupby, see
level
param)によって検索結果(pd.concat)、私はあなたのフォローアップの質問を理解していません:-) 連結後に 'res'を調べると、各インデックスの組み合わせが何回も出現することがあります。 [(A、1)、(B、1)、(A、1)、(A、1)、...]。これは 'level'でグループ化したもので、' max'はそれぞれのグループから最大値をとります。それはあなたの質問に答えますか?@ pythonRcpp? – NTAWolf
はい私は 'レベル'が私が心配していたトリックをしていると思います。ありがとう、私は私のサンプルデータを実行すると答えを受け入れるだろう。確かに非常に良い答え..ありがとう – pythonRcpp