Pandas DataFrameへ配列(リスト)を列追加、列名変更[Python]

はじめに

Pythonのデータ分析ライブラリであるPandasは、データを扱う際に非常に便利な機能を提供しています。その中でも、DataFrameと呼ばれるデータ構造を使用することで、表形式のデータを柔軟に操作することができます。本記事では、Pandasを使用してDataFrameに配列(リスト)を追加したり、列名を変更したりする方法について解説します。

配列(リスト)を列として追加

まずは、DataFrameに新たな列として配列(リスト)を追加する方法を見ていきましょう。

import pandas as pd
# サンプルのDataFrameを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
df = pd.DataFrame(data)
# 新たな列を追加
new_column = ['A', 'B', 'C']
df['新しい列'] = new_column
print(df)

上記のコードでは、まずサンプルのDataFrameを作成しました。その後、新たな列として使用する配列(リスト)を作成し、df[‘新しい列’]のように列名を指定して新しい列を追加しています。実行結果は以下の通りとなります:

       名前  年齢 新しい列
0    Alice  25     A
1      Bob  30     B
2  Charlie  35     C

既存の列名の変更

Pandasを使用してDataFrame内の列名を変更する方法を見てみましょう。

# 列名を変更
df.rename(columns={'新しい列': '変更後の列名'}, inplace=True)
print(df)

上記のコードでは、rename()関数を使用して列名を変更しています。変更前の列名と変更後の列名を辞書形式で指定し、inplace=Trueとすることで元のDataFrameの列名を直接変更します。実行結果は以下の通りとなります:

       名前  年齢 変更後の列名
0    Alice    25            A
1      Bob    30            B
2  Charlie    35            C

新しい列の追加とその列名の設定

新しい列を追加する際に、列名を同時に設定する方法もあります。以下のコードを参考にしてください。

import pandas as pd 
# サンプルのDataFrameを作成 
data = {'名前': ['Alice', 'Bob', 'Charlie'], '年齢': [25, 30, 35]} 
df = pd.DataFrame(data) 
# 新しい列を追加し、列名を設定 
new_column = ['A', 'B', 'C'] 
df = df.assign(新しい列=new_column) 
print(df)

上記のコードでは、assign()関数を使用して新しい列を追加し、列名を設定しています。assign()関数は、新しい列を追加したDataFrameを返すため、df = df.assign(新しい列=new_column)のように代入することで元のDataFrameを更新します。実行結果は以下の通りとなります:

       名前  年齢 新しい列
0    Alice  25     A
1      Bob  30     B
2  Charlie  35     C

新しい列の初期化

import pandas as pd
# サンプルのDataFrameを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
df = pd.DataFrame(data)
# 新しい列を追加し、特定の値で初期化
df['新しい列'] = 0
print(df)

上記のコードでは、新しい列を追加し、初期値として0を設定しています。df[‘新しい列’] = 0のように値を代入することで、新しい列が追加されます。実行結果は以下の通りとなります:

       名前  年齢  新しい列
0    Alice  25      0
1      Bob  30      0
2  Charlie  35      0

新しい列を追加し、特定の値で初期化する方法もあります。以下のコードをご覧ください。

複数の列の追加と列名の変更

import pandas as pd
# サンプルのDataFrameを作成
data = {'名前': ['Alice', 'Bob', 'Charlie'],
        '年齢': [25, 30, 35]}
df = pd.DataFrame(data)
# 複数の列を追加し、列名を変更
new_columns = {'新しい列1': ['A', 'B', 'C'],
               '新しい列2': [1, 2, 3]}
df = df.assign(**new_columns)
print(df)

上記のコードでは、assign()関数を使用して複数の列を一度に追加し、列名を変更しています。新しい列とその値を辞書形式で指定し、**new_columnsのように引数を展開して渡すことで複数の列を一度に追加します。

       名前  年齢 新しい列1  新しい列2
0    Alice    25      A       1 
1      Bob    30      B       2 
2  Charlie    35      C       3 

複数の列を一度に追加し、それぞれの列名を変更することもできます。以下のコードを参考にしてください。

まとめ

本記事では、Pandasを使用してDataFrameに配列(リスト)を追加し、列名を変更する方法について解説しました。以下の内容をまとめます。

  • 配列(リスト)を列として追加するには、df[‘新しい列’] = new_columnのように新しい列を作成します。
  • 列名を変更するには、df.rename(columns={‘新しい列’: ‘変更後の列名’}, inplace=True)のようにrename()関数を使用します。
  • 新しい列の追加と列名の設定は、df = df.assign(新しい列=new_column)のようにassign()関数を使用します。
  • 新しい列の初期化は、df[‘新しい列’] = 0のように値を代入します。
  • 複数の列の追加と列名の変更は、df.assign(**new_columns)のように複数の列とその値を辞書形式で指定します。

Pandasの柔軟な操作機能を活用して、DataFrameに新しい列を追加し、列名を変更することができます。データ分析や前処理の際に便利な手法ですので、ぜひ活用してみてください。