グループ化されたオブジェクトに対する操作を実行すると、変数を作成した後、私はこのようになり、データフレームを持つデータフレームをインデックス作成:はそれに応じて
Id Category Score
1 M 0.2
2 C 0.4
2 M 0.3
1 C 0.1
2 M 0.3
1 M 0.2
1 C 0.1
1 C 0.1
2 C 0.4
私はId
とCategory
によってグループ化する、そして最高を見つけますスコアを計算して、Category_Label
という新しい変数を作成します。この変数の行は最大スコアインデックスでCategory
に等しくなります。
出力は、言い換えれば、この
Id Category Score Category_Label
1 M 0.2 M
2 C 0.4 C
2 M 0.3 C
1 C 0.1 M
2 F 0.03 C
1 M 0.2 M
1 C 0.1 M
1 E 0.01 M
2 C 0.4 C
のようになります、すべて1
の最大スコアに対応する新しい変数「Category_Label should be equal to the row of
Category`は、私はこれを試してみました
df[df['Category_Label']] == df.loc[df.groupby(['Id','Category'])['Score'].transform(lambda a: a.max())],'Category' ]
しかし、私は遠く離れています!このquestionとthisを調べましたが、十分に役立たないです。
@JohnGaltは質問を読んで、OPは '['Id'、 'Category']' 。しかし、それは意味をなさない。それを指摘していただきありがとうございます。 – piRSquared
私はあなたのソリューションが好きです。これははるかにクリーンです。 – Zero
うわー〜ニースと簡潔!:) – Wen