下面是“Python读取大量Excel文件并跨文件批量计算平均值的方法”的完整实例教程:
1. 准备工作:安装必要的库
本教程使用Python第三方库pandas
和numpy
来读取和处理Excel文件。如果你还没有安装这两个库,你可以使用以下命令来安装:
pip install pandas numpy
安装完成后就可以开始使用这两个库了。
2. 读取Excel文件
首先,我们需要找到存储Excel文件的文件夹,并将其中的所有Excel文件读取到一个pandas.DataFrame
对象中。假设Excel文件都存储在/path/to/folder
文件夹下,代码如下:
import os
import pandas as pd
folder_path = '/path/to/folder'
# 获取文件夹下所有Excel文件名
file_names = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 创建空的DataFrame对象
df = pd.DataFrame()
# 读取全部Excel文件到DataFrame中
for file_name in file_names:
file_path = os.path.join(folder_path, file_name)
temp_df = pd.read_excel(file_path)
df = pd.concat([df, temp_df])
这里用到了Python的os
库来获取文件夹下的所有Excel文件的文件名,然后使用pandas
的read_excel
函数将每个Excel文件都读取到一个pandas.DataFrame
对象中。最后用pd.concat
将每个DataFrame对象合并成一个总的DataFrame对象。
3. 计算每列的平均值
接下来,我们需要计算每个列的平均值,并把结果保存到一个新的pandas.DataFrame
对象中。代码如下:
import numpy as np
# 计算每列的平均值并存储到字典中
mean_dict = {}
for column in df.columns:
mean_dict[column] = np.mean(df[column])
# 创建新的DataFrame对象
mean_df = pd.DataFrame.from_dict(mean_dict, orient='index', columns=['Mean'])
这里用到了numpy
库的mean
函数来计算每个列的平均值。把每个列的平均值存储到一个字典中,然后使用pd.DataFrame.from_dict
将这个字典转换成一个新的pandas.DataFrame
对象。
4. 示例说明
下面通过两个示例来说明如何使用上述代码:
示例1
假如我们有3个Excel文件,每个文件都包含A
列和B
列的数据,如下所示:
文件1
A | B |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
文件2
A | B |
---|---|
7 | 8 |
9 | 10 |
11 | 12 |
文件3
A | B |
---|---|
13 | 14 |
15 | 16 |
17 | 18 |
我们将这些文件存储在/path/to/folder
文件夹下,然后按照上述代码来读取并计算平均值。最终得到的平均值DataFrame对象如下:
Mean | |
---|---|
A | 9.0 |
B | 10.0 |
也就是说,每个列的平均值分别是9和10。
示例2
假如我们有2个Excel文件,第一个文件包含A
列和B
列的数据,第二个文件包含B
列和C
列的数据,如下所示:
文件1
A | B |
---|---|
1 | 2 |
3 | 4 |
5 | 6 |
文件2
B | C |
---|---|
7 | 8 |
9 | 10 |
11 | 12 |
我们将这些文件存储在/path/to/folder
文件夹下,然后按照上述代码来读取并计算平均值。根据上述代码,我们会首先将两个文件都读取到一个DataFrame对象中,然后计算每列的平均值。最终得到的平均值DataFrame对象如下:
Mean | |
---|---|
A | 3.0 |
B | 6.333... |
C | 10.0 |
也就是说,A
列的平均值是3,B
列的平均值是6.333...,C
列的平均值是10。需要注意的是,由于B
列同时出现在两个Excel文件中,每个文件中的B
列平均值分别是4和9,所以合并后的B
列平均值是(4+9)/2=6.333...。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python读取大量Excel文件并跨文件批量计算平均值的方法 - Python技术站