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
メソッドによる効率的な追加までさまざまな方法があります。適切な方法を選ぶことで、コードの可読性と効率性が向上します。