我在一个directory
里面,里面有一系列.csv文件,我想把它们赋给自己的变量。
我的想法是首先在循环中整理每个 Dataframe ,然后在最后合并所有内容(我的代码非“循环化”是一系列删除、重命名和分组/透视命令。我编写了这些命令,因为所有.csv文件看起来都一样。
编写循环的最后一步是迭代读取for循环中的.csv文件集。csv文件名为:
100001_t0.csv
100001_t1.csv
100001_t2.csv
100002_t0.csv
...依此类推,直到100009_t2.csv
在下面的循环中,filename
是csv的文件名,而subjid
是.csv扩展名前面的字母数字ID。
我已经尝试了exec("{0}_df = pd.read_csv(filename)".format(subjid))
,但是得到了一个无效的标记错误。有没有办法改变这一行的格式部分,让 Dataframe 分配给它们自己的变量,用它们的subjid
命名?
谢谢你!
for filename in os.listdir(volume_statistics_directory):
f = os.path.join(volume_statistics_directory, filename)
if os.path.isfile(f):
subjid = filename[0:9]
#print(subjid)
#print(f)
print(filename, "being read in...")
print("\n")
exec("{0}_df = pd.read_csv(filename)".format(subjid))
df = pd.read_csv(filename)
100001_t0.csv being read in...
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-109-ceed2fd80975>", line 9, in <module>
exec("{0}_df = pd.read_csv(filename)".format(subjid))
File "<string>", line 1
100001_t0_df = pd.read_csv(filename)
^
SyntaxError: invalid token
1条答案
按热度按时间kupeojn61#
这里的错误是因为变量名以数字开头是不法律的的。否则你的代码就可以工作了。
但是,从字符串构造变量名通常不是一个好主意。请改用dict: