PythonでCSVの縦横変換を行う方法について説明します。この記事では、Pandasライブラリを使用して、データの形式を変換する方法を学びます。

縦持ちデータと横持ちデータ

テーブルデータには、「横持ち (wide)」と「縦持ち (long)」と呼ばれる2つの形式があります。横持ちデータは、各行が1つのエンティティ(例えば、従業員や商品)を表し、各列がそのエンティティの属性(例えば、名前や価格)を表します。一方、縦持ちデータは、各行が1つの属性値を表し、2つ以上の列がエンティティを識別するためのキーとなります。

縦持ちデータから横持ちデータへの変換

Pandasのpivotメソッドを使用して、縦持ちデータを横持ちデータに変換することができます。以下に具体的なコードを示します。

import pandas as pd

# 縦持ちデータの作成
data=[
    ['A','出身地','Tokyo'],
    ['A','年齢',28],
    ['A','性別','M'],
    ['B','出身地','Osaka'],
    ['B','年齢',32],
    ['B','性別','F']
]
df_long=pd.DataFrame(data,columns=['name','attribute','value'])

# 縦持ちから横持ちへの変換
df_wide = df_long.pivot(index='name',columns='attribute',values='value')
print(df_wide)

横持ちデータから縦持ちデータへの変換

Pandasのmeltメソッドを使用して、横持ちデータを縦持ちデータに変換することができます。以下に具体的なコードを示します。

import pandas as pd

# 横持ちデータの作成
data=[
    ['A','Tokyo',28,'M'],
    ['B','Osaka',32,'F']
]
df_wide=pd.DataFrame(data,columns=['name','出身地','年齢','性別'])

# 横持ちから縦持ちへの変換
df_long = df_wide.melt(id_vars='name',var_name='項目名',value_name='値')
print(df_long)

これらの方法を使って、PythonでCSVの縦横変換を行うことができます。データ分析を行う際には、データの形式を適切に変換することが重要です。この記事が皆さんのお役に立てれば幸いです。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です