pandas 如何将所有参数打包为一个参数?

p5fdfcr1  于 2022-12-09  发布在  其他
关注(0)|答案(2)|浏览(108)

我总是导入一个function.py来做一些特殊的计算,
有一天我发现这个function.py有读文件的步骤,也就是说,每次我调用这个函数,function.py都会打开几个excel文件。

file1 = pd.read_excel('para/first.xlsx',sheet_name='Sheet1')
file2 = pd.read_excel('para/second.xlsx',sheet_name='Sheet1')
...

我认为这是浪费时间,任何方法都可以将所有excel文件打包为一个参数,这样我就可以在主脚本中读取文件,而不是在function.py中多次打开它。

function.calculate(parameter_group)

以便置换

function.calculate(file1,file2, file3...)

如何获取“参数组”?

我在想如果把那些文件的参数改成.pkl,也许读起来会更快呢。

iyr7buue

iyr7buue1#

您可以循环遍历名称并将DataFrame放入列表中,也可以在循环中执行任何所需的计算并将结果保存在列表中。例如:

pd_group = []
file_names = ['file1', 'file2', 'file3']

for name in file_names:
    pd_group.append(pd.read_excel(name,sheet_name='Sheet1'))

然后使用pd_group[0]、pd_group[1]等访问 Dataframe 。或者使用myname0 = pd_group[0]等根据需要分配各个名称。

nnt7mjpx

nnt7mjpx2#

1.定义类
1.在init中读取Excel

class Demo:

     def __init__(self):
         self.excel_info = self.mock_read_excel()
         print("done")

     def mock_read_excel(self):
         # df = pd.read_excel('para/second.xlsx',sheet_name='Sheet1')
         df = "mock data"
         print("reading")
         return df

     def use_df_data_1(self):
         print(self.excel_info)

     def use_df_data_2(self):
         print(self.excel_info)

 if __name__ == '__main__':
     dm = Demo()
     dm.use_df_data_1()
     dm.use_df_data_2()

解决了每次调用函数时都要阅读excel的问题

相关问题