我正在做一个作业,我想稍微优化一下我的代码。基本上我正在做的是读取.xlsx文件,每个文件有三页。对于上下文-一个是“保险信息”,第二个是“新保险”,第三个是“辞职”。我当前要加载文件的代码如下:
###Info
InsuranceInfo1 = pd.read_excel("First.xlsx", sheet_name='Info', header=None).dropna(axis = 0, how='all')
InsuranceInfo2 = pd.read_excel("Second.xlsx", sheet_name='Info', header=None).dropna(axis = 0, how='all')
InsuranceInfo3 = pd.read_excel("Third.xlsx", sheet_name='Info', header=None).dropna(axis = 0, how='all')
###New Insurances
New_Insurances1 = pd.read_excel("First.xlsx", sheet_name='New', header=None)
New_Insurances2 = pd.read_excel("Second.xlsx", sheet_name='New', header=None)
New_Insurances3 = pd.read_excel("Third.xlsx", sheet_name='New', header=None)
###Resignations
Resignations1 = pd.read_excel("First.xlsx", sheet_name='Resignations', header=None)
Resignations2 = pd.read_excel("Second.xlsx", sheet_name='Resignations', header=None)
Resignations3 = pd.read_excel("Third.xlsx", sheet_name='Resignations', header=None)
现在,有了三个文件,这在某种程度上是可以接受的,并且很容易完成。但是问题是,我想读取5,6或更多文件。为此,我想编写一个函数,只需编写文件名即可立即创建变量InsuranceInfo1,NewInsurances1,Resignations1。
def readfile(filename):
InsuranceInfo1 = pd.read_excel(filename, sheet_name='Info', header=None).dropna(axis = 0, how='all')
New_Insurances1 = pd.read_excel(filename, sheet_name='New', header=None)
Resignations1 = pd.read_excel(filename, sheet_name='Resignations', header=None)
return(InsuranceInfo1, New_Insurances1, Resignations1)
此代码有效,但显然仅返回硬编码变量。我想要的是这样的东西,在这里我可以输入一个数字,这样它就可以在名称中使用上述数字创建变量。我的朋友告诉我有关C语言中一个名为sprintf的函数,该函数可以帮助他完成类似的任务,但我们俩都不知道如何用Python格式化代码
提前感谢所有建议!
def readfile(filename,i):
InsuranceInfo(i) = pd.read_excel(filename, sheet_name='Info', header=None).dropna(axis = 0, how='all')
New_Insurances(i) = pd.read_excel(filename, sheet_name='New', header=None)
Resignations(i) = pd.read_excel(filename, sheet_name='Resignations', header=None)
return(InsuranceInfo(i), New_Insurances(i), Resignations(i))