首页 > 解决方案 > 将多个excel文件读取到多个变量(来自文件本身的变量名)

问题描述

我有多个excel文件:

import os
files = os.listdir()

#list excel files in the folder
files_xlsx = [f for f in files if f[-4:] == 'xlsx']

#sort
files_xlsx.sort()

#remove the extension
for i in range(len(files_xlsx)):
    files_xlsx[i] = files_xlsx[i][:-5]

files_xlsx
['Microsoft_Excel_Worksheet',
'Microsoft_Excel_Worksheet1',
'slide2_chart_rId3_object_rId1',
'slide3_chart_rId2_object_rId1',
'slide3_chart_rId3_object_rId1',
'slide4_chart_rId2_object_rId1',
'slide4_chart_rId3_object_rId1',
'slide5_chart_rId3_object_rId1',
'slide6_chart_rId2_object_rId1']

我想使用 pandas 读取文件并将每个数据帧保存到一个变量中:

import pandas as pd

??? how to loop this ???
Microsoft_Excel_Worksheet = pd.read_excel(files_xlsx[0] + '.xlsx'), index_col='Unnamed: 0')
Microsoft_Excel_Worksheet1 = pd.read_excel(files_xlsx[1] + '.xlsx'), index_col='Unnamed: 0')
slide2_chart_rId3_object_rId1 = pd.read_excel(files_xlsx[2] + '.xlsx'), index_col='Unnamed: 0')

我不知道如何循环程序。在此先感谢您的帮助!

标签: pythonpython-3.xpandas

解决方案


您可以做的是将 xlsx 文件读取到数据帧并附加到组合列表

basepath = <basepath>
files = list(filter(lambda x: '. xlsx' in x, os.listdir(basepath)))
alldf = []
for f in files:
    df= pd.read_excel(f"{basepath}/{f}",index_col='Unnamed: 0')
    alldf.append(df)

推荐阅读