複数の変数を使用した Pandas のロング形式からワイド形式への再整形
Pandas でのデータのロング形式からワイド形式への変換は、特に複数の変数が異なる場合に困難になることがあります。関与した。この質問では、ピボット関数を使用してデータを再形成する方法を検討します。
提供される元のデータは次のとおりです:
Salesman Height product price Knut 6 bat 5 Knut 6 ball 1 Knut 6 wand 3 Steve 5 pen 2
必要なワイド形式は次のとおりです:
Salesman Height product_1 price_1 product_2 price_2 product_3 price_3 Knut 6 bat 5 ball 1 wand 3 Steve 5 pen 2 NA NA NA NA
One Chris Albon 氏が提案したアプローチでは、次のようにピボット関数を使用します。
df.pivot(index='Salesman', columns='product', values='price')
このアプローチでは、Salesman 列と product 列をそれぞれ行インデックスとして、列インデックスとしてマルチレベル インデックスを作成します。価格列が値になります。
結果のデータフレームは次のようになります。
product bat ball wand Salesman Knut 5 1 3 Steve 2 NaN NaN
必要な形式を取得するには、列をスタックして製品と価格の値を抽出する追加の手順が必要です。別々の列。これは、次のように stack 関数とreset_index 関数を使用して実現できます。
df.pivot(index='Salesman', columns='product', values='price') \ .stack().reset_index() \ .rename(columns={'level_1':'product', 0:'price'})
最終結果は、目的のワイド フォーマットになります。
以上がピボット関数を使用して、複数の変数を使用して Pandas データをロング形式からワイド形式に再形成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。