我在一个文件夹中有一组csv文件,我想创建一个与csv文件同名的动态数据帧
例如我有以下文件:AC201703.csv AC201703.csv AC201704.csv 我想将这些文件加载到具有相同名称的数据帧中,例如AC201703 AC201704 我尝试使用exec,如下面的
for file in glob.glob("*.csv"):
df = pd.read_csv(file,encoding = 'ISO-8859-1' )
exec("%s = %s" % (file[:7],df))
但它没有用,我收到以下错误
File "<ipython-input-31-2d670638b427>", line 4, in <module>
exec("%s = %s" % (file[:7],df))
File "<string>", line 1
A201610 = A201610_fb_act_n_n_buy cust_key A201610_fb_act_n_n LCELGST \
^
SyntaxError: invalid syntax
它似乎为变量A201610分配了csv列的名称
答案 0 :(得分:3)
我认为更好的是使用dict of DataFrames
:
d = {file[:7] : pd.read_csv(file, encoding = 'ISO-8859-1') for file in glob.glob("*.csv")}
然后按键选择DataFrame
- 文件名前7个字母:
print (d['AC20170'])
但如果不想使用dict
s:
for file in glob.glob("*.csv"):
globals()[file[:7]] = pd.read_csv(file,encoding = 'ISO-8859-1')
print (AC20170)