下面是详细讲解“Python读取大量Excel文件并跨文件批量计算平均值的方法”的完整实例教程。
背景介绍
在日常工作中,我们可能需要读取大量的 Excel 文件,并对它们进行批量计算。如果手动操作,会很繁琐,效率也不高。而使用 Python,可以方便地实现这一功能,节省大量时间和精力。
环境准备
在进行下文的示例之前,需要先准备以下环境:
- Python 3.x
- Pandas 库
- NumPy 库
示例一
假设现在有 3 个 Excel 文件,每个文件的文件名为 file1.xlsx
、file2.xlsx
和 file3.xlsx
,文件的路径为 data/files/
目录下。每个文件中都包含一个名为 Sheet1 的 Sheet,其中有一列为 score
,我们需要计算出这 3 个文件中 score
列的平均值。
下面是示例代码:
import pandas as pd
import numpy as np
file_names = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']
dir_path = 'data/files/'
score_sum = 0
count = 0
for file_name in file_names:
file_path = dir_path + file_name
df = pd.read_excel(file_path, sheet_name='Sheet1')
score_sum += np.sum(df['score'])
count += len(df['score'])
print('平均值:', score_sum / count)
代码解释:
首先,我们需要导入 Pandas 和 NumPy 库,然后定义三个变量:
file_names
:Excel 文件名列表dir_path
:文件所在目录score_sum
:总分数和,初始化为 0count
:总人数,初始化为 0
然后,对于每个 Excel 文件,读取 Sheet1 的数据,并计算出 score
列的总和和人数:
df = pd.read_excel(file_path, sheet_name='Sheet1')
score_sum += np.sum(df['score'])
count += len(df['score'])
最后,根据总分数和人数计算出平均值:
print('平均值:', score_sum / count)
示例二
上一个示例仅考虑了一个 Sheet 的情况。如果一个 Excel 文件有多个 Sheet,我们可以采用类似的方式读取多个 Sheet。下面的示例代码中,我们读取 file4.xlsx
文件中的 Sheet1
和 Sheet2
,分别计算它们的平均值,然后将结果进行合并,得到所有 Sheet 的平均值。
import pandas as pd
import numpy as np
file_name = 'file4.xlsx'
dir_path = 'data/files/'
sheet_names = ['Sheet1', 'Sheet2']
result = []
for sheet_name in sheet_names:
file_path = dir_path + file_name
df = pd.read_excel(file_path, sheet_name=sheet_name)
score_sum = np.sum(df['score'])
count = len(df['score'])
result.append(score_sum / count)
print('平均值:', np.mean(result))
代码解释:
首先,我们定义了两个变量:
file_name
:Excel 文件名dir_path
:文件所在目录
然后,定义了一个 sheet_names
列表,其中包含需要读取的 Sheet 的名称。
接下来,遍历 sheet_names
列表,读取每个 Sheet 的数据,并计算出平均值:
for sheet_name in sheet_names:
file_path = dir_path + file_name
df = pd.read_excel(file_path, sheet_name=sheet_name)
score_sum = np.sum(df['score'])
count = len(df['score'])
result.append(score_sum / count)
最后,将所有 Sheet 的平均值求出来,得到最终的平均值:
print('平均值:', np.mean(result))
总结
本文介绍了如何使用 Python 读取大量 Excel 文件,并跨文件批量计算平均值。通过示例代码的介绍,你可以了解到如何使用 Pandas 和 NumPy 库来实现这一功能。