でCumcountを用いて第2の最適な行を選択すると、私が持っているデータである。は条件付きでグループ化を実行し、ここでパンダ
ID Vehicle Calculator Offer NextCalculator NextOffer
3497827 2002 Ford Explorer Manheim Salvage 190 Copart 190
3497827 2002 Ford Explorer Manheim Salvage 190 IAA 140
3497827 2002 Ford Explorer Manheim Salvage 190 Manheim Salvage 190
3497827 2002 Ford Explorer Manheim Salvage 190 SVP 55
3497828 2003 Honda CRV Manheim Salvage 320 Copart 150
3497828 2003 Honda CRV Manheim Salvage 320 IAA 320
3497828 2003 Honda CRV Manheim Salvage 320 Manheim Salvage 320
3497828 2003 Honda CRV Manheim Salvage 320 SVP 200
私が何をしたいのか、各車両のための次善の電卓のオファーであるかを調べるのですか?例えば。 IAA 190(私たちはそれの後の次たいので、マンハイムサルベージを考慮しない)となります3497828次の最善のオファーのために - - 3497827のために、次の最高のオファーはCopartあるこれまでのところ私が行っている320
df = df.sort_values(['ID', 'NextOffer'], ascending=False)
df1 = df[df.groupby('ID').cumcount() == 1]
私を与え
:
ID Vehicle Calculator Offer NextCalculator NextOffer
3497827 2002 Ford Explorer Manheim Salvage 190 Manheim Salvage 190
3497828 2003 Honda CRV Manheim Salvage 320 IAA 320
それはNextOffer
はオファーと同じである場合NextOffers
はオファー値よりも小さいですが、ない場合にのみ、私は正しい結果を与えます。
私は何をしたいことは次のとおりです。
ID Vehicle Calculator Offer NextCalculator NextOffer
3497827 2002 Ford Explorer Manheim Salvage 190 Copart 190
3497828 2003 Honda CRV Manheim Salvage 320 IAA 320
だから私の推測では、最初に私がcumcount()== 0をしなければならないでしょうし、その行のNextCalculator
がCalculator
と同じであるならば、私が取得しなければならないということです2番目の行はcumcount()== 1を使用しています。これをどのように行うことができますか、または望ましい出力を得る効率的な方法はありますか?
うわー!これは機能します。すぐにお返事ありがとうございますMaxU – Shaunak
@スハナク、あなたは歓迎です:) – MaxU