ホームページ >バックエンド開発 >Python チュートリアル >マルチインデックスパンダデータフレームの外部インデックスの各行の合計を計算します

マルチインデックスパンダデータフレームの外部インデックスの各行の合計を計算します

WBOY
WBOY転載
2024-02-05 22:00:131146ブラウズ

计算多索引 pandas 数据帧外部索引每行的总和

質問の内容

データ フレームがあります: selleritemprice送料最低送料無料利用可能な数、および必要な数。私の目標は、後で計算される total に基づいて、selleritem の最も安い組み合わせを見つけることです (計算コードは以下に示されています)。サンプルデータは次のとおりです:

リーリー

ただし、販売者は複数の item を販売できます。送料の支払いを最小限に抑えたいので、itemseller ごとにグループ化したいと考えています。そこで、別のスレッドで見た内容に基づいて .first() メソッドを使用してそれらをグループ化し、新しいグループ化されたデータフレームに各列を保持しました。

リーリー

現時点では、totalからsellerまでを計算したいと考えています。したがって、次のコードがありますが、sellerではなく、各itemtotalを計算します。これは、各アイテムの数に基づいてshippingを意味しますグループ内の商品を複数回追加した場合、価格 x 個数が終了すると送料無料 minimum free 送料は適用されません。

リーリー

実際には、total を計算するときに、各 sellerprice 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 を合計して を見つけることにしました。 subtotals をデータフレームに変換し、df1 を新しい subtotal データフレームとマージして、groupedphpcnend cphpcn データフレームを作成します。次に、<code>np.where 提案を使用して totals 列を作成しました (これは、私の for ループよりもはるかに洗練されており、nan 値を簡単に処理します)。最後に、sellertotalitem でグループ化して、必要な結果を返します。最終的なコードは次のとおりです:

リーリー

以上がマルチインデックスパンダデータフレームの外部インデックスの各行の合計を計算しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。