首页 > 解决方案 > 在列表项之后设置熊猫名称

问题描述

我有多个包含数据的 xlsx 文件,我想将它们导入到 Python 中的单独数据帧中。

目前,我想从 2014 年 9 月和 2014 年 10 月导入电子表格。电子表格每年都在不同的文件夹中,文件名在 month_list 变量中如下所示。所需的数据框名称是“2014_09_sept_df”和“2014_10_okt_df”

month_list = ['09_sept', '10_okt']

df_string_list=[]
k = 0

for i in range(2014,2015):
    dirstring = 'C:/Users/folder/' + str(i)
    os.chdir(dirstring)

    for j in month_list:
        filestring = dirstring + '/' + j + '.xlsx'
        my_file = Path(filestring)            

        if my_file.exists():
            df_string_list.append(str(i) + '_' + j + '_df')
            df_string_list[k] = pd.read_excel(filestring)
            k+=1              

我的问题是我已经创建了 df_string_list 列表来保存数据框名称,并且当我想用列表中的该项目命名数据框时,使用此命令将数据框放入列表中,而不是创建数据框:

df_string_list[k] = pd.read_excel(filestring)

标签: python-3.xpandas

解决方案


如果我理解正确,我建议您使用字典而不是列表:

df_string_list={}    #create an empty dict

for i in range(2014,2015):
    dirstring = 'C:/Users/folder/' + str(i)
    os.chdir(dirstring)

    for j in month_list:
        filestring = dirstring + '/' + j + '.xlsx'
        my_file = Path(filestring)            

        if my_file.exists():
            df_string_list[str(i) + '_' + j + '_df'] = pd.read_excel(filestring)

例如,在这种情况下,df_string_list['2014_09_sept_df']包含来自正确文件的 Dataframe。

要了解您的 dict 中加载的所有数据框名称,请使用:

for dfname in df_string_list.keys():
  print(dfname)
  #print(df_string_list[dfname]    #uncomment to print the desired df

推荐阅读