Python 重命名for循环中的读取数据
我需要从excel文件中读取数据,该文件有大量的工作表。每张表都有一个不同年份的大数据集 选项卡的名称以表示数据收集年份的年份显示。数据如下所示:Python 重命名for循环中的读取数据,python,excel,dataframe,loops,Python,Excel,Dataframe,Loops,我需要从excel文件中读取数据,该文件有大量的工作表。每张表都有一个不同年份的大数据集 选项卡的名称以表示数据收集年份的年份显示。数据如下所示: Data_2000 = pd.read_excel('Database.xlsx',sheet_name = 2000) import pandas as pd import xlrd wb = xlrd.open_workbook('Database.xlsx', on_demand=True) SheetName = wb.sheet_nam
Data_2000 = pd.read_excel('Database.xlsx',sheet_name = 2000)
import pandas as pd
import xlrd
wb = xlrd.open_workbook('Database.xlsx', on_demand=True)
SheetName = wb.sheet_names() # Reading the name of the sheets
for i in SheetName:
Data = pd.read_excel('Database.xlsx',sheet_name = i )
因为有很多工作表,我想使用for循环读取数据,如下所示:
Data_2000 = pd.read_excel('Database.xlsx',sheet_name = 2000)
import pandas as pd
import xlrd
wb = xlrd.open_workbook('Database.xlsx', on_demand=True)
SheetName = wb.sheet_names() # Reading the name of the sheets
for i in SheetName:
Data = pd.read_excel('Database.xlsx',sheet_name = i )
问题是,我无法在这个循环中更改数据帧的名称,即,
data
,并将其设置为data\u 2000
,data\u 2001
,…为什么不这样将变量存储在字典中:
将熊猫作为pd导入
导入xlrd
wb=xlrd.open_工作簿('Database.xlsx',on_demand=True)
SheetName=wb.sheet_names()#读取工作表的名称
数据=dict()
以我的名义:
data[f“data{i}]=pd.read\u excel('Database.xlsx',sheet\u name=i)
然后,您可以通过以下方式访问所需的数据:
data["Data_2000"]
处理这个问题的一种方法就是使用dicts
#First set up a dict
sheets = {}
# Then when you run the loop you append to that dict
for name in SheetName:
data = pd.read_excel('Database.xlsx', sheet_name = name)
year = name
sheets[year] = data
然后,如果您需要某一年的数据,您可以使用键调用dict,格式为
称为_data=sheets[year]
谢谢您的建议。我还尝试了以下方法,效果很好,可以实现我的预期:
import pandas as pd
import xlrd
wb = xlrd.open_workbook('Data.xlsx', on_demand=True)
SheetName = wb.sheet_names() # Reading the name of the sheets
for i in SheetName:
globals()['Data_%s' %i] = pd.read_excel('Data.xlsx', sheet_name = i)
它生成不同的数据框,在名称的装箱处保留数据,并将工作表的名称放在后面(例如,Data_2000,Data_2001,…)最后一行的缩进不正确,这是一个非常糟糕的主意。使用字典代替标题如果使用
工作表名称=无
,读取excel
返回数据帧的目录
。谢谢你的建议和宝贵的帮助。除了你提到的,我还尝试了以下方法,效果很好。