Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重命名for循环中的读取数据_Python_Excel_Dataframe_Loops - Fatal编程技术网

Python 重命名for循环中的读取数据

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

我需要从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_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
返回
数据帧的
目录
。谢谢你的建议和宝贵的帮助。除了你提到的,我还尝试了以下方法,效果很好。