Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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中动态命名数据帧?_Python_Python 3.x_Pandas_List_Dataframe - Fatal编程技术网

如何在Python中动态命名数据帧?

如何在Python中动态命名数据帧?,python,python-3.x,pandas,list,dataframe,Python,Python 3.x,Pandas,List,Dataframe,我有一个excel文件,其中包含30多张表格。然而,我在每张纸上所做的操作或多或少保持不变。但我的目标是为每个工作表创建一个单独的数据框架,以便将来可以参考 这是我尝试过的,但它抛出了一个错误 xls = pd.ExcelFile('DC_Measurement.xlsx') sheets = xls.sheet_names for s in sheets: print(s) 'df '+ s = pd.read_excel(xls, sheet_name=s) 所以,我想创建

我有一个excel文件,其中包含30多张表格。然而,我在每张纸上所做的操作或多或少保持不变。但我的目标是为每个工作表创建一个单独的数据框架,以便将来可以参考

这是我尝试过的,但它抛出了一个错误

xls = pd.ExcelFile('DC_Measurement.xlsx')
sheets = xls.sheet_names
for s in sheets:
    print(s)
    'df '+ s = pd.read_excel(xls, sheet_name=s)
所以,我想创建30个数据帧,每个数据帧都有一个表名作为后缀名。我试着使用“+”操作符,但也没用。它抛出了一条错误消息,如下所示

  SyntaxError: can't assign to operator

如何动态创建数据帧并命名它们?

您可以使用以下方法:

for s in sheets:
    vars()['df'+ s] = pd.read_excel(xls, sheet_name=s)
xls = pd.ExcelFile('DC_Measurement.xlsx')
sheets = {}
for s in xls.sheet_names:
    print(s)
    sheets[s] = pd.read_excel(xls, sheet_name=s)

您可以使用以下内容:

for s in sheets:
    vars()['df'+ s] = pd.read_excel(xls, sheet_name=s)
xls = pd.ExcelFile('DC_Measurement.xlsx')
sheets = {}
for s in xls.sheet_names:
    print(s)
    sheets[s] = pd.read_excel(xls, sheet_name=s)

或者使用
局部变量

for s in sheets:
    locals()['df'+ s] = pd.read_excel(xls, sheet_name=s)

在函数中将
局部变量
更改为
全局变量
或使用
局部变量

for s in sheets:
    locals()['df'+ s] = pd.read_excel(xls, sheet_name=s)

在函数更改中,最好的方法通常是将数据帧存储在列表或字典中,您可以在其中系统地使用它们,如下所示:

for s in sheets:
    vars()['df'+ s] = pd.read_excel(xls, sheet_name=s)
xls = pd.ExcelFile('DC_Measurement.xlsx')
sheets = {}
for s in xls.sheet_names:
    print(s)
    sheets[s] = pd.read_excel(xls, sheet_name=s)
或者仅仅是这样:

xls = pd.ExcelFile('DC_Measurement.xlsx')
sheets = {
    s: pd.read_excel(xls, sheet_name=s)
    for s in xls.sheet_names
}

这将使以后以编程方式处理工作表变得容易(只需访问
sheets]
,其中
s
是工作表名称)。否则,您接下来将面临一个棘手的问题,即如何访问刚刚创建为自由浮动变量的所有数据帧

最好的方法通常是将数据帧存储在列表或字典中,您可以在其中系统地使用它们,如下所示:

for s in sheets:
    vars()['df'+ s] = pd.read_excel(xls, sheet_name=s)
xls = pd.ExcelFile('DC_Measurement.xlsx')
sheets = {}
for s in xls.sheet_names:
    print(s)
    sheets[s] = pd.read_excel(xls, sheet_name=s)
或者仅仅是这样:

xls = pd.ExcelFile('DC_Measurement.xlsx')
sheets = {
    s: pd.read_excel(xls, sheet_name=s)
    for s in xls.sheet_names
}

这将使以后以编程方式处理工作表变得容易(只需访问
sheets]
,其中
s
是工作表名称)。否则,您接下来将面临一个棘手的问题,即如何访问刚刚创建为自由浮动变量的所有数据帧

严格来说,这不是对您问题的回答,但这将创建一个字典,其中键是工作表名称,值是数据帧

workbook = pd.read_excel('DC_Measurement.xlsx', sheet_name = None)
然后您可以像这样检索所需的数据帧

df = workbook['sheet_name']

我认为这比其他解决方案更整洁。

严格地说,这不是对您问题的回答,但这将创建一个字典,其中键是工作表名称,值是数据框

workbook = pd.read_excel('DC_Measurement.xlsx', sheet_name = None)
然后您可以像这样检索所需的数据帧

df = workbook['sheet_name']

我认为这比其他解决方案更整洁。

您可以创建一个字典,其中key为
df{}.format(s)
和val为
pd.read\u excel(xls,sheet\u name=s)
可能的副本您可以创建一个字典,key为
df{}.format(s)
和val为
pd.read\u excel(xls,sheet\u name=s)
此处的数据帧名称可能重复?。它是以
df
开头,后跟sheetname,还是仅以sheetname开头?因为,当我遵循这个解决方案时。我没有获取数据帧名称?名称将以
df
开头,然后是sheetname。例如,如果sheetname是
Sheet1
Sheet2
,则dfs的名称将是:
dfSheet1
dfSheet2
(它是方括号中的名称:
df
+s)这里的数据帧名称是什么?。它是以
df
开头,后跟sheetname,还是仅以sheetname开头?因为,当我遵循这个解决方案时。我没有获取数据帧名称?名称将以
df
开头,然后是sheetname。例如,如果图纸名称是
Sheet1
Sheet2
,则dfs的名称将是:
dfSheet1
dfSheet2
(它是方括号中的名称:
df
+s)