Python实现读取大量Excel文件并跨文件批量计算平均值

  • Post category:Python

Python实现读取大量Excel文件并跨文件批量计算平均值

在进行数据分析的过程中,经常需要读取大量的Excel文件,并计算各个文件中数据的平均值。本文介绍使用Python实现读取大量Excel文件并跨文件批量计算平均值的完整实例教程。

准备工作

在进行数据分析之前,需要对Python开发环境进行配置,包括Python的安装和相关的库的安装。常用的数据分析库有Pandas、Numpy和Matplotlib等。本文主要介绍Pandas的使用。

安装Pandas库

在Python的命令行中输入以下命令进行安装:

pip install pandas

读取Excel文件

在Python中使用Pandas库可以轻松地读取Excel文件,Pandas提供了read_excel()函数,可以直接读取Excel文件中的数据。下面是读取Excel文件的代码示例:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('data.xlsx')

计算平均值

读取Excel文件中的数据之后,需要计算各个文件中数据的平均值。可以使用Pandas中的groupby()函数来对数据进行分组,并使用mean()函数来计算平均值。下面是计算平均值的代码示例:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('data.xlsx')

# 分组计算平均值
mean_df = df.groupby('id').mean()

上面的代码中,我们假设数据中有一个id列,我们使用id列对数据进行分组,并使用mean()函数计算每个组的平均值。

批量处理多个Excel文件并计算平均值

上面的代码适用于读取单个Excel文件并计算其中数据的平均值。但是,在实际的数据分析中,经常需要读取大量的Excel文件,并批量计算各文件中数据的平均值。下面是使用Python批量处理多个Excel文件并计算平均值的代码示例:

import pandas as pd
import os

# 获取所有Excel文件的文件名
excel_files = [f for f in os.listdir('data') if f.endswith('.xlsx')]

# 合并所有Excel文件中的数据
df = pd.concat([pd.read_excel(os.path.join('data', f)) for f in excel_files])

# 分组计算平均值
mean_df = df.groupby('id').mean()

上面的代码中,我们使用os.listdir()函数获取所有Excel文件的文件名,并使用pd.concat()函数将所有文件中的数据合并成一个数据框,然后使用groupby()函数对数据进行分组,并使用mean()函数计算每个组的平均值。

示例说明

接下来我将使用两个示例来说明Python实现读取大量Excel文件并跨文件批量计算平均值的完整过程。

示例1

假设我们有一个data1.xlsx和一个data2.xlsx文件,它们包含以下数据:

data1.xlsx:

id,value
1,10
1,20
2,30
2,40

data2.xlsx:

id,value
3,50
4,60
4,70

我们需要计算每个id的平均值。下面是计算平均值的代码:

import pandas as pd

# 读取Excel文件
df1 = pd.read_excel('data1.xlsx')
df2 = pd.read_excel('data2.xlsx')

# 合并数据
df = pd.concat([df1, df2])

# 分组计算平均值
mean_df = df.groupby('id').mean()

print(mean_df)

输出结果为:

    value
id       
1    15.0
2    35.0
3    50.0
4    65.0

示例2

假设我们有一个data目录,其中包含多个Excel文件,文件名以data_开头,并以.xlsx结尾,每个文件包含以下数据:

data_1.xlsx:

id,value
1,10
1,20
2,30
2,40

data_2.xlsx:

id,value
3,50
4,60
4,70

我们需要计算每个id的平均值。下面是计算平均值的代码:

import pandas as pd
import os

# 获取所有Excel文件的文件名
excel_files = [f for f in os.listdir('data') if f.startswith('data_') and f.endswith('.xlsx')]

# 合并所有Excel文件中的数据
df = pd.concat([pd.read_excel(os.path.join('data', f)) for f in excel_files])

# 分组计算平均值
mean_df = df.groupby('id').mean()

print(mean_df)

输出结果为:

    value
id       
1    15.0
2    35.0
3    50.0
4    65.0

上面的代码中,我们使用os.listdir()函数获取所有Excel文件的文件名,并使用pd.concat()函数将所有文件中的数据合并成一个数据框,然后使用groupby()函数对数据进行分组,并使用mean()函数计算每个组的平均值。