前提
csvファイルをデータフレームに読み込む際に、ファイル名ごとに列選択して読み込みたい
これを実現するためにexec関数を用いたところ、エラーは出力されませんがexec関数が通っていないという事象が起こりました。
実現したいこと
csvファイルをデータフレームに読み込む際に、ファイル名ごとに列選択して読み込みたい
該当のソースコード1(正しく動くコード)
Python
1test_arr = [column1,column2] 2 3test= "テスト" 4df = pd.read_csv(FOLDER+test+".csv", sep=',') 5print("選択前:" + str(len(df.columns))) #出力 100 6exec_command = "df = df["+test+"_arr]" 7exec(exec_command) 8print("選択後:" + str(len(df.columns))) #出力 2 9 10#以下dfを操作し可視化を行いますが、本題と関係がないので省略します 11 12#出力 13選択前:100 14選択後:2
該当のソースコード2(正しく動かないコード)
Python
1test_arr = [column1,column2] 2 3def select(test): 4 df = pd.read_csv(FOLDER+test+".csv", sep=',') 5 print("選択前:" + str(len(df.columns))) 6 exec_command = "df = df["+test+"_arr]" 7 exec(exec_command) 8 print("選択後:" + str(len(df.columns))) 9 #以下省略 10 11test = "テスト" 12select(test) 13 14#出力 15選択前:100 16選択後:100
試したこと
関数として定義するとexecが動いていないことが確認できていますが
exec関数を使うのが初めてなこともあり、原因がわかりません
補足情報(FW/ツールのバージョンなど)
Windows11
VSCodeでipynbファイルで動かしています
回答1件
あなたの回答
tips
プレビュー