动态创建数据帧

2024-06-26 13:44:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个文件夹中有一组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

它似乎将csv列的名称赋给变量A201610


Tags: 文件csv数据in名称dffbline
1条回答
网友
1楼 · 发布于 2024-06-26 13:44:17

我认为最好使用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'])

但如果不想使用dicts:

for file in glob.glob("*.csv"):
    globals()[file[:7]] = pd.read_csv(file,encoding = 'ISO-8859-1')

print (AC20170)

相关问题 更多 >