python - 将多个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')
我不知道如何循环程序。在此先感谢您的帮助!
解决方案
您可以做的是将 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)
推荐阅读
- ios - 使用 UIApplication.shared.keyWindow?.rootViewController 的问题
- bash - 如何编写一个bash文件来编译和执行一个c++程序
- sql - 查找两个时间范围之间的日期差距
- jquery - 如何在 Kendo Grid 中调整列宽
- javascript - server.listen() 的异步而不是 then()
- neo4j - 在 Neo4j 密码中聚合所有集合中的相关节点
- python - 使用 tesseract 读取图像进行手写识别时没有结果
- react-native - React Native Modal transparent with backgroundColor black opacity 0.5 在场景之间变得更暗
- c++ - 为什么 scons 在 SConscript 中忽略我的 CXXFlags
- php - 在 Woocommerce 的产品变体描述中允许使用简码