python: 変数の値を名前にして保存(変数評価)
変数の名前を保存する際の名前にしたい。
import pandas as pd savename = 'むにゃたん' df = pd.DataFrame( {'name': ['一郎','二郎','三郎'], 'educ': ['大','大','高'], 'income': [1000,2000,500]})
このようなデータセットと変数があったとき、むにゃたん.csv
って名前でデータセットを保存したい。スクレイピングとかしてると、こういうことが結構ある(savename がリストになっててfor文で回すとか)。ところが以下ではエラーする。
df.to_csv(savename)
savename を変数と判断し評価してくれないので、値までいかないんだね。 そこで、以下みたいにしてみたけどこれもダメ。
df.to_csv(eval(savename))
もう方針を変えて、上記のコードを全部 string にして、後から eval()
で評価することに。以下で成功です。
import pandas as pd df = pd.DataFrame( {'name': ['一郎','二郎','三郎'], 'educ': ['大','大','高'], 'income': [1000,2000,500]}) savename = 'むにゃたん.csv' name = 'df.to_csv("'+savename+'")' eval(name)
これで、ディレクトリにむにゃたん.csv
が保存されたはず。