サイトアイコン Amelt.net

pandas:for文でデータフレームの列名を、連番やリスト要素にて作成する方法

This post is also available in: English-US (英語)

pandasを使っていて、for文でループする際に、データフレームの列名を連番やリスト要素にて作成する方法について、備忘録的にメモを書いています。

下記コード中の「f"sample_{i}"」は、Python3.6から導入された f文字列(フォーマット済み文字列リテラル,f-string) を利用しています。

特に、機械学習のプログラミングを行う際、特徴量を大量に生成する場合などに便利です。

for文でデータフレームの列名を、連番にて作成したい場合

import pandas as pd

#データフレームの列名を連番にて作成
df = pd.DataFrame()

for i in range(1,5,1):
	df[f"sample_{i}"] = [11,22,33]

print(df)

"""
#output
   sample_1  sample_2  sample_3  sample_4
0        11        11        11        11
1        22        22        22        22
2        33        33        33        33
"""

for文でデータフレームの列名を、リスト要素にて作成したい場合

import pandas as pd

#データフレームの列名をリスト要素にて作成
df2 = pd.DataFrame()

items = [1,5,'a','b']
for i in items:
	df2[f"sample_{i}"] = [11,22,33]

print(df2)

"""
#output
   sample_1  sample_5  sample_a  sample_b
0        11        11        11        11
1        22        22        22        22
2        33        33        33        33
"""