よっしーの私的空間

機械学習を中心に興味のあることについて更新します

Pythonのf-stringsを使ったPandas.DataFrameの列名の動的設定

変数を使用してPandas.DataFrameの列名を動的に設定する方法についてまとめます。 Pythonにはフォーマット済み文字列リテラル(f-strings)という記法が存在するのですが、今回はそれを使用します。

1.フォーマット済み文字列リテラル(f-strings)とは

文字列の中に変数や式の値を埋め込む手法です。例を見た方が早いので、以下に例示します。

name = 'Tarou'
print(f'My name is {name}')

以下のように出力されます。

このように、文字列をf''で囲い、その中で変数や式を{}で囲うことで、変数や式の値を文字列に埋め込むことができます。 他にも出力する数字の桁数を指定したり色々とできます。詳細は以下、公式ドキュメントを参照ください。

docs.python.org

2.DataFrameの列名の動的設定

フォーマット済み文字列リテラルはDataFrameにも使えます。これも例を見てみましょう。

import pandas as pd
import plotly.express as px

df = px.data.stocks()
for i in range(1,4):
    df[f'GOOG_{i}'] = df['GOOG'].shift(i)
display(df.head())

こんな感じでラグ変数の変数名を設定するときに使うことができます。その他、変数の掛け合わせ等様々な用途でフォーマット済み文字列リテラルは使えます。