PandasのDataFrameは、Pythonでのデータ操作に不可欠です。新しい列を追加することはよくある作業であり、Pandasはそれを効率的に行うためのいくつかの方法を提供しています。この記事では4つの主要な方法を解説し、それぞれの長所と短所を強調することで、状況に最適な方法を選択するのに役立ちます。
目次
[]演算子メソッド:迅速かつ簡単な方法
これは最も簡単な方法であり、既存のデータまたは単純な計算に基づいて列を追加するのに最適です。角括弧を使用して、新しい列に直接値を代入します。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df['City'] = ['New York', 'London', 'Paris']
print(df)
制限事項:この方法は特定の位置に挿入できず、新しい列のデータはDataFrameの長さと一致する必要があります。
df.insert()
メソッド:正確な列配置
df.insert()
はより多くの制御を提供し、列のインデックス(位置)を指定できます。位置、列名、データの3つの引数を取ります。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.insert(1, 'City', ['New York', 'London', 'Paris'])
print(df)
最適な用途:列の順序が重要な場合。
df.assign()
メソッド:複数の列を効率的に追加
df.assign()
は、複数の列を一度に追加したり、計算に基づいて新しい列を作成したりするのに特に役立ちます。重要なのは、元のDataFrameを変更せずに、*新しい*DataFrameを返すことです。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df = df.assign(City=['New York', 'London', 'Paris'], Age_Squared=df['Age']**2)
print(df)
最適な用途:複数の列の追加と計算された列;不変性により、誤ってデータが失われるのを防ぎます。
df.loc()
メソッド:条件付き列作成
df.loc()
は最も柔軟性があり、行の選択とブールインデックスに基づいて条件付きの列作成を可能にします。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.loc[df['Age'] < 30, 'Age_Group'] = 'Young'
df.loc[df['Age'] >= 30, 'Age_Group'] = 'Older'
print(df)
最適な用途:複雑な条件に基づいて列を追加する場合;ブールインデックスに精通している必要があります。
結論:最適な方法は、具体的なニーズによって異なります。[]演算子は単純な追加には迅速であり、df.insert()
は列の位置を制御し、df.assign()
は複数または計算された列を効率的に処理し、df.loc()
は条件付きの列作成を可能にします。タスクの可読性と機能性のバランスが最適な方法を選択してください。