ピボット関数を使用して、複数の変数を使用して Pandas データをロング形式からワイド形式に再形成する方法

DDD
リリース: 2024-11-02 17:14:02
オリジナル
366 人が閲覧しました

How to Reshape Pandas Data from Long to Wide Format with Multiple Variables Using the Pivot Function?

複数の変数を使用した 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート