首页 > Python资料 博客日记
[python]使用Pandas处理多个Excel文件并汇总数据
2024-09-23 18:00:05Python资料围观47次
Python资料网推荐[python]使用Pandas处理多个Excel文件并汇总数据这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣
在数据分析和处理过程中,经常需要处理多个Excel文件,并将其中的数据进行汇总和分析。本文介绍使用Python的Pandas库来读取多个Excel文件,并汇总不同类型的数据,例如员工工资、工件数量等。
代码示例
以下是一个完整的代码示例,展示了如何读取指定目录下的所有Excel文件,并对其中的数据进行处理和汇总:
import pandas as pd
import os
# 设定存放Excel文件的目录路径
directory = r'C:\Users\Desktop\py计算'
# 创建一个空的列表用于存储所有记录DataFrame
all_data_frames = []
# 遍历目录中的所有Excel文件
for filename in os.listdir(directory):
if filename.endswith(".xls"):
file_path = os.path.join(directory, filename)
# 读取Excel文件,从第六行开始,忽略前五行
data = pd.read_excel(file_path, skiprows=4, engine='xlrd')
# 去除特定列中的逗号并转换为数值格式,无法转换的设置为NaN
data['存额'] = data['存额'].str.replace(',', '').astype(float)
print(data)
# 将读取到的DataFrame添加到列表中
all_data_frames.append(data)
# 使用pd.concat将所有DataFrame合并成一个
all_data = pd.concat(all_data_frames, ignore_index=True)
# 计算每个员工的工资之和
salary_sum = all_data.groupby('证件号码')['存额'].sum().round(2).reset_index()
# 获取每个员工的其他信息(例如部门和职位)
employee_info = all_data[['姓名', '证件\n类型', '证件号码']].drop_duplicates(subset=['证件号码'])
# 合并工资之和和其他信息
result = pd.merge(salary_sum, employee_info, on='证件号码', how='left')
# 如果需要保存结果到新的Excel文件
result.to_excel('汇总带信息.xlsx', sheet_name='之和', index=False)
代码解析
- 导入必要的库:首先,我们需要导入Pandas库和os库。
- 设定目录路径:指定存放Excel文件的目录路径。
- 创建空列表:用于存储所有记录的DataFrame。
- 遍历目录中的Excel文件:使用
os.listdir
遍历目录中的所有文件,并筛选出以.xls
结尾的Excel文件。 - 读取Excel文件:使用
pd.read_excel
读取Excel文件,从第六行开始,忽略前五行。 - 数据清洗:去除特定列中的逗号并转换为数值格式,无法转换的设置为NaN。
- 合并所有DataFrame:使用
pd.concat
将所有DataFrame合并成一个。
关键函数
-
groupby:
groupby
函数用于将数据分组,以便对每个组进行聚合操作。在本例中,按证件号码
分组,并计算每个员工的工资之和。salary_sum = all_data.groupby('证件号码')['存额'].sum().round(2).reset_index()
-
reset_index:
reset_index
函数用于重置索引,将分组后的结果转换为DataFrame。在本例中,我们在计算工资之和后使用reset_index
将结果转换为DataFrame。salary_sum = all_data.groupby('证件号码')['存额'].sum().round(2).reset_index()
-
merge:
merge
函数用于合并两个DataFrame。在本例中,我们将工资之和与员工的其他信息合并。result = pd.merge(salary_sum, employee_info, on='证件号码', how='left')
-
drop_duplicates:
drop_duplicates
函数用于删除重复的行。在本例中,我们获取每个员工的其他信息,并删除重复的记录。employee_info = all_data[['姓名', '证件\n类型', '证件号码']].drop_duplicates(subset=['证件号码'])
通过以上步骤读取多个Excel文件,并对其中的数据进行处理和汇总。这种方法不仅适用于工资数据,还可以应用于其他类型的数据,例如工件数量、销售额等。这样可以提高数据处理的效率,适用于各种数据分析和处理场景。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj