![Pandas DataFrameへ配列(リスト)を列追加、列名変更[Python]](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-15.jpg)
はじめに
Pythonのデータ分析ライブラリであるPandasは、データを扱う際に非常に便利な機能を提供しています。その中でも、DataFrameと呼ばれるデータ構造を使用することで、表形式のデータを柔軟に操作することができます。本記事では、Pandasを使用してDataFrameに配列(リスト)を追加したり、列名を変更したりする方法について解説します。
配列(リスト)を列として追加
まずは、DataFrameに新たな列として配列(リスト)を追加する方法を見ていきましょう。
1 2 3 4 5 6 7 8 9 | 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[‘新しい列’]のように列名を指定して新しい列を追加しています。実行結果は以下の通りとなります:
1 2 3 4 | 名前 年齢 新しい列 0 Alice 25 A 1 Bob 30 B 2 Charlie 35 C |
既存の列名の変更
Pandasを使用してDataFrame内の列名を変更する方法を見てみましょう。
1 2 3 | # 列名を変更 df.rename(columns = { '新しい列' : '変更後の列名' }, inplace = True ) print (df) |
上記のコードでは、rename()関数を使用して列名を変更しています。変更前の列名と変更後の列名を辞書形式で指定し、inplace=Trueとすることで元のDataFrameの列名を直接変更します。実行結果は以下の通りとなります:
1 2 3 4 | 名前 年齢 変更後の列名 0 Alice 25 A 1 Bob 30 B 2 Charlie 35 C |
新しい列の追加とその列名の設定
新しい列を追加する際に、列名を同時に設定する方法もあります。以下のコードを参考にしてください。
1 2 3 4 5 6 7 8 | 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を更新します。実行結果は以下の通りとなります:
1 2 3 4 | 名前 年齢 新しい列 0 Alice 25 A 1 Bob 30 B 2 Charlie 35 C |
新しい列の初期化
1 2 3 4 5 6 7 8 | import pandas as pd # サンプルのDataFrameを作成 data = { '名前' : [ 'Alice' , 'Bob' , 'Charlie' ], '年齢' : [ 25 , 30 , 35 ]} df = pd.DataFrame(data) # 新しい列を追加し、特定の値で初期化 df[ '新しい列' ] = 0 print (df) |
上記のコードでは、新しい列を追加し、初期値として0を設定しています。df[‘新しい列’] = 0のように値を代入することで、新しい列が追加されます。実行結果は以下の通りとなります:
1 2 3 4 | 名前 年齢 新しい列 0 Alice 25 0 1 Bob 30 0 2 Charlie 35 0 |
新しい列を追加し、特定の値で初期化する方法もあります。以下のコードをご覧ください。
複数の列の追加と列名の変更
1 2 3 4 5 6 7 8 9 10 | 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 3 4 | 名前 年齢 新しい列 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に新しい列を追加し、列名を変更することができます。データ分析や前処理の際に便利な手法ですので、ぜひ活用してみてください。