スポンサーリンク

【Python】Pandas データフレームに列を追加する方法

記事内に広告が含まれています。

Pandasはデータ処理に非常に便利なライブラリで、データフレームに新しい列を追加する操作はよく行われます。

列を追加する方法について、簡単にまとめます。

スポンサーリンク

単純な列追加

Pandasでは、新しい列を追加するのはとても簡単です。

データフレームに存在しない列名を指定して値を代入するだけです。

import pandas as pd

# サンプルデータの作成
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}
df = pd.DataFrame(data)

# 新しい列を追加
df['Country'] = ['USA', 'UK', 'Canada']

print(df)

出力

      Name  Age Country
0    Alice   25     USA
1      Bob   30      UK
2  Charlie   35  Canada
スポンサーリンク

計算結果を基に列を追加

既存のデータを基に計算結果を新しい列として追加することができます。

# 年齢に10を加えた値を新しい列に追加
df['Age_Plus_10'] = df['Age'] + 10

print(df)

出力

      Name  Age  Age_Plus_10
0    Alice   25           35
1      Bob   30           40
2  Charlie   35           45

条件に基づいて列を追加

条件式やapply関数を使って、特定の条件に応じた値を持つ列を追加できます。

import pandas as pd

# サンプルデータの作成
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}
df = pd.DataFrame(data)

# 年齢に10を加えた値を新しい列に追加
df['Age_Plus_10'] = df['Age'] + 10

# 年齢が30以上かどうかを判定
df['Is_30_or_Above'] = df['Age'] >= 30

print(df)

出力

      Name  Age  Age_Plus_10  Is_30_or_Above
0    Alice   25           35           False
1      Bob   30           40            True
2  Charlie   35           45            True

関数を用いて列を追加

複雑なロジックが必要な場合は、関数を定義して apply を使うと効率的です。

import pandas as pd

# 年齢をカテゴリ分けする関数
def categorize_age(age):
    if age < 30:
        return 'Young'
    elif 30 <= age < 40:
        return 'Middle-aged'
    else:
        return 'Old'

# サンプルデータの作成
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}

df = pd.DataFrame(data)

# 関数を適用して新しい列を追加
df['Age_Category'] = df['Age'].apply(categorize_age)

print(df)

出力

      Name  Age Age_Category
0    Alice   25        Young
1      Bob   30  Middle-aged
2  Charlie   35  Middle-aged

複数の列を一度に追加

assignメソッドを使うと、複数の列を一度に追加することができます。

import pandas as pd

# サンプルデータの作成
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}

df = pd.DataFrame(data)

# 新しい列を同時に追加
df = df.assign(
    Double_Age=df['Age'] * 2,
    Is_Adult=df['Age'] >= 18
)

print(df)

出力

      Name  Age  Double_Age  Is_Adult
0    Alice   25          50      True
1      Bob   30          60      True
2  Charlie   35          70      True

インデックスを列として追加

reset_indexメソッドを使うと、行のインデックスを新しい列として追加できます。

import pandas as pd

# サンプルデータの作成
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
}

df = pd.DataFrame(data)

# インデックスを列に変換
df_with_index = df.reset_index()

print(df_with_index)

出力

   index     Name  Age
0      0    Alice   25
1      1      Bob   30
2      2  Charlie   35

まとめ

Pandasでデータフレームに新しい列を追加する方法には、単純な値の代入から関数や条件式の利用、assignメソッドによる効率的な追加までさまざまな方法があります。適切な方法を選ぶことで、コードの可読性と効率性が向上します。

スポンサーリンク
Python
著者SNS
タイトルとURLをコピーしました