ホームページ >バックエンド開発 >Python チュートリアル >マルチインデックスパンダデータフレームの外部インデックスの各行の合計を計算します
データ フレームがあります: seller
、item
、price
、送料
、最低送料無料
、利用可能な数
、および必要な数
。私の目標は、後で計算される total
に基づいて、seller
と item
の最も安い組み合わせを見つけることです (計算コードは以下に示されています)。サンプルデータは次のとおりです:
ただし、販売者
は複数の item
を販売できます。送料の支払いを最小限に抑えたいので、item
を seller
ごとにグループ化したいと考えています。そこで、別のスレッドで見た内容に基づいて .first()
メソッドを使用してそれらをグループ化し、新しいグループ化されたデータフレームに各列を保持しました。
現時点では、total
からseller
までを計算したいと考えています。したがって、次のコードがありますが、seller
ではなく、各item
のtotal
を計算します。これは、各アイテムの数に基づいてshipping
を意味しますグループ内の商品を複数回追加した場合、価格 x 個数
が終了すると送料無料 minimum free 送料
は適用されません。
実際には、total
を計算するときに、各 seller
の price x count
を合計する必要があるように見えますが、本質的には同じ問題です。外部インデックスの各行と列を計算する方法がわかりません。これを行うにはどのような方法を使用できますか?
また、後半の目標を達成するためのヒントがあれば、お気軽に質問してください。必要な商品をすべて返品したいのですが。たとえば、「プロジェクト 1」が 2 つと「プロジェクト 2」が 2 つ必要です。 「販売者 1」に 2 つの「品目 1」と 1 つの「品目 2」があり、「販売者 2」に 1 つの「品目 1」と 1 つの「品目 2」がある場合、「販売者 1」の品目すべてが必要です (それが最安)ですが、「Seller2」には「Item1」が 1 つだけあります。これは total
列の計算に影響を与えるようですが、実装方法がわかりません。
最終的に、最初に seller
をグループ化し、price x count
を合計して を見つけることにしました。 subtotal
s をデータフレームに変換し、df1
を新しい subtotal
データフレームとマージして、groupedphpcnend cphpcn データフレームを作成します。次に、<code>np.where
提案を使用して totals
列を作成しました (これは、私の for ループよりもはるかに洗練されており、nan 値を簡単に処理します)。最後に、seller
、total
、item
でグループ化して、必要な結果を返します。最終的なコードは次のとおりです:
以上がマルチインデックスパンダデータフレームの外部インデックスの各行の合計を計算しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。