ホームページ >バックエンド開発 >Python チュートリアル >Pandas を使用して長いデータを複数の変数を含むワイド形式に再形成するにはどうすればよいですか?

Pandas を使用して長いデータを複数の変数を含むワイド形式に再形成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 07:38:27635ブラウズ

How can I reshape long data into a wide format with multiple variables using Pandas?

Pandas を使用して長いデータをワイド形式に再形成する

長い形式のデータを扱う場合、データをワイド形式に再形成する必要がある場合があります。より優れた分析と視覚化のためのワイドフォーマット。一般的な課題の 1 つは、複数の変数に基づいてデータを再形成することです。

次のデータフレームを考えてみましょう:

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

メルト/スタック/アンスタックはデータの再形成に一般的に使用されますが、この特定のシナリオには適していない可能性があります。

この問題の解決策は、次のコードを使用して見つけることができます:

<code class="python">import pandas as pd

# Create sample data
raw_data = {
    'salesman': ['Knut', 'Knut', 'Knut', 'Steve'],
    'height': [6, 6, 6, 5],
    'product': ['bat', 'ball', 'wand', 'pen'],
    'price': [5, 1, 3, 2]
}

df = pd.DataFrame(raw_data)

# Reshape data
df_wide = df.pivot_table(index=['salesman', 'height'], columns='product', values='price')

# Reset index to get it in the desired format
df_wide = df_wide.reset_index(level=[0, 1])

# Rename columns
new_columns = ['salesman', 'height'] + [f'product_{i}' for i in range(1, df_wide.shape[1] - 1)] + [f'price_{i}' for i in range(1, df_wide.shape[1] - 1)]
df_wide.columns = new_columns

# Handle missing values
df_wide.fillna("NA", inplace=True)</code>

結果のデータフレーム df_wide は、目的のワイド形式になります。

以上がPandas を使用して長いデータを複数の変数を含むワイド形式に再形成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。