Python 从两个不同的函数获取dataframe并写入两个不同的excel表格

Python 从两个不同的函数获取dataframe并写入两个不同的excel表格,python,excel,pandas,dataframe,Python,Excel,Pandas,Dataframe,我对Python非常陌生,我有两个函数func1和func2,其中每个函数中有一个数据帧。 我想让func1中的df1写在sheet1上,func2中的df2写在同一个excel上,而不是sheet2上。 我在每个写记录的函数中都尝试了单独的excelwriter,但是func2用Df2覆盖了Df1,这就是为什么我尝试将df都放在外部,并尝试一个接一个地写入,因此我在函数外部调用df时也遇到了问题。 我不能发送我的项目查询,粘贴样本查询,任何帮助/建议将不胜感激。 仅供参考,此查询显示错误 im

我对Python非常陌生,我有两个函数func1和func2,其中每个函数中有一个数据帧。 我想让func1中的df1写在sheet1上,func2中的df2写在同一个excel上,而不是sheet2上。 我在每个写记录的函数中都尝试了单独的excelwriter,但是func2用Df2覆盖了Df1,这就是为什么我尝试将df都放在外部,并尝试一个接一个地写入,因此我在函数外部调用df时也遇到了问题。 我不能发送我的项目查询,粘贴样本查询,任何帮助/建议将不胜感激。 仅供参考,此查询显示错误

import pandas as pd

def func1():

    df1 = pd.DataFrame({'Names': ['Andreas', 'George', 'Steve',
                        'Sarah', 'Joanna', 'Hanna'],
                        'Age':[21, 22, 20, 19, 18, 23]})
                        
    adf1 = return df1                                     

func1()

def func2(df2):

    df2 = pd.DataFrame({'Names': ['Pete', 'Jordan', 'Gustaf',
                    'Sophie', 'Sally', 'Simone'],
                    'Age':[22, 21, 19, 19, 29, 21]})

    adf2 = return df2        
 
func2()      

Filepath='C:/Users/kharikrishnan/xlopt/bb10.xlsx'    
writer= pd.ExcelWriter(Filepath) 

df1.to_excel(writer,sheet_name='Sheet1',index=False,startrow=0, startcol=0) 
df2.to_excel(writer,sheet_name='Sheet2',index=False,startrow=10, startcol=0) 
writer.save() 
writer.close()

这就是从方法中检索元素的方式,只需使用
return
并将其(frmo方法调用)存储在一个变量中,之后就可以使用它了

def func1():
    return pd.DataFrame({'Names': ['Andreas', 'George', 'Steve',
                                   'Sarah', 'Joanna', 'Hanna'],
                         'Age': [21, 22, 20, 19, 18, 23]})

def func2():
    return pd.DataFrame({'Names': ['Pete', 'Jordan', 'Gustaf',
                                   'Sophie', 'Sally', 'Simone'],
                         'Age': [22, 21, 19, 19, 29, 21]})


df1 = func1()
df2 = func2()

Filepath = 'C:/Users/kharikrishnan/xlopt/bb10.xlsx'
writer = pd.ExcelWriter(Filepath)

df1.to_excel(writer, sheet_name='Sheet1', index=False, startrow=0, startcol=0)
df2.to_excel(writer, sheet_name='Sheet2', index=False, startrow=10, startcol=0)
writer.save()
writer.close()

请注意,这里,
df1
写在一张纸上,而
df2
写在另一张纸上,上面有10行填充

如果不使用函数中的数据帧(如示例中所示),则不要使用函数。在这种情况下,请尝试以下操作:

df1=pd.DataFrame({'Names':['Andreas','George','Steve',',
“莎拉”、“乔安娜”、“汉娜”],
‘年龄’:[21,22,20,19,18,23]})
df2=pd.DataFrame({'Names':['Pete'、'Jordan'、'Gustaf',
“Sophie”、“Sally”、“Simone”],
‘年龄’:[22,21,19,19,29,21]})
文件路径='C:/Users/kharikrishnan/xlopt/bb10.xlsx'
writer=pd.ExcelWriter(文件路径)
df1.to_excel(writer,sheet\u name='Sheet1',index=False,startrow=0,startcol=0)
df2.to_excel(writer,sheet\u name='Sheet2',index=False,startrow=10,startcol=0)
writer.save()
writer.close()
[提示]尝试对变量使用小写名称(不是
Filepath
,而是
Filepath


如果使用函数处理数据帧,则只需返回结果。更重要的是,只需在这里调用不做任何操作的函数,就必须将其分配给一个变量。试试这个:

将熊猫作为pd导入
df1=pd.DataFrame({'Names':['Andreas','George','Steve',
“莎拉”、“乔安娜”、“汉娜”],
‘年龄’:[21,22,20,19,18,23]})
df2=pd.DataFrame({'Names':['Pete'、'Jordan'、'Gustaf',
“Sophie”、“Sally”、“Simone”],
‘年龄’:[22,21,19,19,29,21]})
def func1(数据帧):
#一些进程使用数据帧,即。E添加新列:
数据帧['new_col']=['var1','var2','var3',]
返回数据帧
def func2(数据帧):
已处理的数据帧=
返回已处理的数据帧
new_df1=func1(df1)
new_df1=func1(df2)
文件路径='C:/Users/kharikrishnan/xlopt/bb10.xlsx'
writer=pd.ExcelWriter(文件路径)
新建到excel(编写器,工作表名称='Sheet1',索引=False,startrow=0,startcol=0)
新建到excel(编写器,工作表名称='Sheet2',索引=False,startrow=10,startcol=0)
writer.save()
writer.close()

我希望这对你有帮助。如果你不理解某些东西,请询问。

什么错误?分享它您似乎不熟悉函数中的变量、如何访问它们以及函数末尾的return如何工作。我建议你多研究一下,你会得到答案的yourself@j是的,我是一名数据仓库专业人员,正在尝试自动化项目中的一些测试,我对编程本身非常陌生,将致力于学习这些。谢谢:)只返回数据帧不需要使用函数。@maciejwww:是的,你是对的,这是一个片段来说明我的要求的要点。@maciejwww当然可以内联,但如果我这样做,它就不会向OP解释如何使用从方法返回的内容;)你好,谢谢你的回复,我会按照你的建议去做。这只是一个示例代码,我需要两个函数的原因是我在这两个函数中连接到两个不同的数据库,在每个函数中,dataframe从表中读取数据并保存查询内容。。如果我有两个以上的数据框从两个函数返回并打印在excel上,你能帮忙吗?我正在搜索,但如果你能帮忙,那就太好了,谢谢:)@TheKrish0229,I。E在
function()
返回dataframe1,dataframe2
。然后:
df1,df2=function()
,您可以像以前一样使用它。