Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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_Pandas_For Loop - Fatal编程技术网

Python 熊猫。如何从数据帧列表中调用数据帧?

Python 熊猫。如何从数据帧列表中调用数据帧?,python,pandas,for-loop,Python,Pandas,For Loop,我有一个数据帧列表: all_df = ['df_0','df_1','df_2','df_3','df_4','df_5','df_6'] 我如何从列表中调用他们来执行类似操作: for (df,names) in zip(all_df,names): df.to_csv('output/{}.csv'.format(names)) 当按预期执行时,我得到了错误“str”对象没有属性“to\u csv”,因为我给“to\u csv”赋予了字符串 如何在for循环中保存多个数据帧(或对

我有一个数据帧列表:

all_df = ['df_0','df_1','df_2','df_3','df_4','df_5','df_6']
我如何从列表中调用他们来执行类似操作:

for (df,names) in zip(all_df,names):
   df.to_csv('output/{}.csv'.format(names))
当按预期执行时,我得到了错误
“str”对象没有属性“to\u csv”
,因为我给
“to\u csv”
赋予了字符串

如何在
for
循环中保存多个数据帧(或对其执行其他操作)

谢谢

您还可以介绍一下如何根据以下内容创建“正确”的数据帧列表:

path = 'inp/multysheet_excel_01.xlsx'
xl = pd.ExcelFile(path)
sh_name = xl.sheet_names

n = 0
for i in sh_name:
    exec('df_{} = pd.read_excel("{}", sheet_name="{}")'.format(n, path, i))
    n+=1

因此,基本上我试图将输入excel的每一页作为一个单独的数据框,对其执行一些操作,并将每个输出数据框保存在单独的excel中

你们很接近,但我发现在for循环中有一些错误。假设您有一个数据帧列表
dfs
,其对应的名称作为字符串列表
名称
,您可以使用以下名称保存这些数据帧:

dfs = [df_1, df_2, df_3]
names = ['df_0','df_1','df_2']

for df,name in zip(dfs,names):
    df.to_csv('output\\{}.csv'.format(name))
不过,如果您只有一个姓名列表,您还可以执行以下操作:

names = ['df_0','df_1','df_2']
for name in names:
    globals()[name].to_csv('output\\{}.csv'.format(name))

你们很接近,但我发现在这个循环中有一些错误。假设您有一个数据帧列表
dfs
,其对应的名称作为字符串列表
名称
,您可以使用以下名称保存这些数据帧:

dfs = [df_1, df_2, df_3]
names = ['df_0','df_1','df_2']

for df,name in zip(dfs,names):
    df.to_csv('output\\{}.csv'.format(name))
不过,如果您只有一个姓名列表,您还可以执行以下操作:

names = ['df_0','df_1','df_2']
for name in names:
    globals()[name].to_csv('output\\{}.csv'.format(name))

all_df
不是数据帧列表,它是字符串列表,因此您会得到错误。
all_df
不是数据帧列表,它是字符串列表,因此您会得到错误。如何从中获得“正确”的df列表:
xl=pd.ExcelFile(路径)sh_name=xl.sheet_name n=0表示sh_name:exec中的i('df_{}=pd.read_excel(“{}”,sheet_name=“{}”)”)。格式(n,path,i))n+=1
不确定您的意思。你能在问题中包括这一点,使其成为一个可复制的例子吗@doctoryep,non知道格式会有问题吗?那生成数据帧的代码是什么@博士,这就是问题所在。如何生成dfs?)添加类似于
df_list.append('df_'+str(n))
将给出一个字符串列表而不是dfs列表如何从中获得“正确”的df列表:
xl=pd.ExcelFile(path)sh_name=xl.sheet_names n=0表示sh_name:exec中的I('df_{}=pd.read_excel(“{}”,sheet_name=“{}”)。格式(n,path,I))n+=1
不确定您的意思。你能在问题中包括这一点,使其成为一个可复制的例子吗@doctoryep,non知道格式会有问题吗?那生成数据帧的代码是什么@博士,这就是问题所在。如何生成dfs?)添加类似于
df_list.append('df_'+str(n))
的内容将给出字符串列表,而不是dfs列表