用Python自动化处理Excel表格详解

2023-11-18

a1b380f2e94b4dcdb8a93041846e2b63.png


 

Excel表格基础知识

Excel表格可以帮助用户创建、编辑、格式化和计算数据,并生成各种图表和报表。Excel表格通常用于商业、金融、科学、教育等领域。

 

Excel表格的常用操作

Excel表格的常用操作包括插入、删除、移动、复制、粘贴、排序和筛选、图表等。这些操作可以帮助用户快速有效地处理数据,并生成各种报表和图表。

Excel表格的文件格式

Excel表格的文件格式有多种,常见的有xls、xlsx、xlsm、xlsb等。其中,xls格式是Excel 97-2003所使用的二进制格式,而xlsx格式是Excel 2007及以上版本所使用的XML格式。xlsm格式与xlsx格式类似,但支持宏和VBA代码。xlsb格式是一种二进制格式,通常用于处理大型数据集。

Python自动化处理Excel表格

在Python中,我们可以使用pandas和openpyxl等库来自动化处理Excel表格。

pandas库

pandas是一个开源的数据分析库,具有高效、灵活、易用等特点。它可以帮助用户处理各种数据类型,包括Excel表格。在pandas中,我们可以使用read_excel和to_excel等函数来读取和写入Excel表格。

示例代码

import pandas as pd

# 读取Excel表格
df = pd.read_excel('data.xlsx')

# 处理数据
# ...

# 写入Excel表格
df.to_excel('output.xlsx', index=False)

openpyxl库

openpyxl是一个开源的Python库,用于读取和写入Excel表格。它可以帮助用户处理各种数据类型,包括Excel表格。在openpyxl中,我们可以使用load_workbook和save_workbook等函数来读取和写入Excel表格。

示例代码

from openpyxl import load_workbook

# 读取Excel表格
wb = load_workbook('data.xlsx')
ws = wb.active

# 处理数据
# ...

# 写入Excel表格
wb.save('output.xlsx')

Python自动化处理Excel表格的常见问题

在使用Python自动化处理Excel表格时,常见的问题包括读取数据、写入数据、格式化数据、筛选数据等。下面,我们将针对这些问题进行详细讲解。

如何读取Excel表格?

在Python中,我们可以使用pandas和openpyxl等库来读取Excel表格。其中,pandas库常用于读取较大的Excel表格,而openpyxl库常用于读取较小的Excel表格。

使用pandas读取Excel表格

import pandas as pd

# 读取Excel表格
df = pd.read_excel('data.xlsx')

使用openpyxl读取Excel表格

from openpyxl import load_workbook

# 读取Excel表格
wb = load_workbook('data.xlsx')
ws = wb.active

# 获取数据
data = []
for row in ws.iter_rows(values_only=True):
    data.append(row)

如何写入Excel表格?

在Python中,我们可以使用pandas和openpyxl等库来写入Excel表格。其中,pandas库常用于写入较大的Excel表格,而openpyxl库常用于写入较小的Excel表格。

使用pandas写入Excel表格

import pandas as pd

# 写入Excel表格
df.to_excel('output.xlsx', index=False)

使用openpyxl写入Excel表格

from openpyxl import Workbook

# 写入Excel表格
wb = Workbook()
ws = wb.active

for row in data:
    ws.append(row)

wb.save('output.xlsx')

如何格式化Excel表格?

在Python中,我们可以使用openpyxl等库来格式化Excel表格。其中,openpyxl库提供了各种格式化工具,可以帮助用户对Excel表格进行格式化。

示例代码

from openpyxl.styles import Font, Alignment

# 设置字体和对齐方式
font = Font(name='Arial', size=12, bold=True)
alignment = Alignment(horizontal='center', vertical='center')

# 格式化表头
for cell in ws[1]:
    cell.font = font
    cell.alignment = alignment

# 格式化数据
for row in ws.iter_rows(min_row=2):
    for cell in row:
        cell.number_format = '0.00'

如何筛选Excel表格?

在Python中,我们可以使用pandas和openpyxl等库来筛选Excel表格。其中,pandas库常用于筛选较大的Excel表格,而openpyxl库常用于筛选较小的Excel表格。

使用pandas筛选Excel表格

import pandas as pd

# 筛选数据
df_filtered = df[df['column_name'] == 'value']

使用openpyxl筛选Excel表格

from openpyxl.utils import column_index_from_string

# 筛选数据
for row in ws.iter_rows(min_row=2):
    if row[column_index_from_string('A')-1].value == 'value':
        # 处理数据
        # ...

筛选和修改数据

使用 pandas 和 openpyxl 可以方便地筛选和修改 Excel 文件中的数据。以下是一个简单的示例代码:

import pandas as pd
from openpyxl import load_workbook

# 读取 Excel 文件并加载工作表
file = 'example.xlsx'
workbook = load_workbook(file)
sheet = workbook['Sheet1']

# 将工作表中的数据读取到 pandas DataFrame 中
data = sheet.values
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])

# 筛选出年龄大于等于 30 岁的人员信息
df_filtered = df[df['年龄'] >= 30]

# 将年龄小于 20 岁的人员信息删除
df.drop(df[df['年龄'] < 20].index, inplace=True)

# 在 DataFrame 中添加一列数据
df['职业'] = ['学生', '教师', '医生']

# 将修改后的 DataFrame 写入 Excel 文件
with pd.ExcelWriter(file, engine='openpyxl', mode='a') as writer:
    writer.book = workbook
    df.to_excel(writer, sheet_name='Sheet1', index=False)

在这个代码中,先使用 openpyxl 库读取 Excel 文件并加载工作表。然后,使用 pandas 库将工作表中的数据读取到 DataFrame 中:

  • 使用条件表达式筛选出年龄大于等于 30 岁的人员信息,并将其存储在 df_filtered 变量中。

  • 使用 drop() 方法删除年龄小于 20 岁的人员信息。

  • 在 DataFrame 中添加一列职业信息。

最后将修改后的 DataFrame 写回到 Excel 文件中。

创建图表

使用 pandas 和 openpyxl 可以方便地在 Excel 文件中创建各种类型的图表。以下是一个简单的示例代码:

import pandas as pd
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference

# 读取 Excel文件并加载工作表
file = 'example.xlsx'
workbook = load_workbook(file)
sheet = workbook['Sheet1']

# 将工作表中的数据读取到 pandas DataFrame 中
data = sheet.values
df = pd.DataFrame(data, columns=['姓名', '年龄', '性别'])

# 创建一个柱形图并添加到 Excel 文件中
chart = BarChart()
chart.title = '人员年龄分布'
chart.x_axis.title = '姓名'
chart.y_axis.title = '年龄'

xdata = Reference(sheet, min_col=1, min_row=2, max_row=len(df))
ydata = Reference(sheet, min_col=2, min_row=2, max_row=len(df))
chart.add_data(ydata)
chart.set_categories(xdata)

sheet.add_chart(chart, 'D1')

# 保存 Excel 文件
workbook.save(file)

在这个示例代码中,先使用 openpyxl 库读取 Excel 文件并加载工作表。然后使用 pandas 库将工作表中的数据读取到 DataFrame 中。

创建一个柱形图并将其添加到 Excel 文件中的步骤:

  • 创建一个 BarChart 对象,并设置标题、X 轴标题和 Y 轴标题。

  • 使用 Reference 方法创建一个数据范围对象,并将其指定为图表的 X 轴和 Y 轴数据。

  • 使用 add_data() 方法将 Y 轴数据添加到图表中。

  • 使用 set_categories() 方法将 X 轴数据添加到图表中。

  • 使用 add_chart() 方法将图表添加到工作表中。

好了,今天的分享就到这里,欢迎点赞收藏转发,感谢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Python自动化处理Excel表格详解 的相关文章

随机推荐

  • 强大的jQuery图表插件库Highcharts支持线性图、饼状图、柱状图、区域图、气泡图

    Highcharts是一个纯JavaScript编写的jQuery图表插件库 Highcharts提供了简单的方式为您的网站或项目添加动态图表 Highcharts支持线性图 饼状图 柱状图 区域图 气泡图等近20种图表类型 下载地址 ht
  • mybatis(19)——choose标签,when标签和otherwise标签

    代码
  • JMeter简单使用

    一 下载安装 1 在官网下载或者在 share 192 168 1 201 share 开发工具 java apache jmeter 5 5 zip 2 解压 执行文件在bin目录中 二 常用测试组件 1 线程组 线程组是JMeter 中
  • 服务配置宝塔面板搭建环境及部署项目

    服务配置宝塔面板搭建环境及部署项目 1 登录你所购买阿里云服务器的账号 2 点击控制台 云服务器ecs 3 开通安全组开启端口 把需要访问的端口进行配置 选入方向 如 6379 8080 3306 80 21 22 443 4 获取服务器公
  • FOC和SVPWM的C语言代码实现   

    FOC和SVPWM的C语言代码实现 SVPWM的原理讲解在这儿 https blog csdn net qlexcel article details 74787619 comments 现在开始分析C语言的代码 代码建议复制到notepa
  • 【UE4】DataTable - 数据表

    本文使用 UE 4 26 引擎自带 ARPG 项目 从代码和编辑器两个方面记录一下 UE4 中的 DataTable 也就是数据表的用法 一 DataTable 是什么 DataTable 就是数据表 以下简称 DT 也就是二维的 M 行
  • OLED透明屏轻量化设计:提升便携性与用户体验的新方向

    随着科技的不断进步 OLED透明屏作为一种新兴的显示技术正逐渐走入人们的视野 除了在视觉效果上的优势 OLED透明屏在重量方面的设计也备受关注 对此 尼伽将深入探讨OLED透明屏轻量化设计的重要性 策略以及应用案例 希望看后对您有所启发 一
  • 面试机试题目,使用Spring + SpringMVC +Mybatis + html + css实现员工管理系统

    文章目录 机试挑战 需求分析 简介 访问地址 http 39 99 237 90 8080 employee http 39 99 237 90 8080 employee 源码 https github com Listen Y Java
  • Visual C++中函数的覆盖和函数的隐藏

    我是荔园微风 作为一名在IT界整整25年的老兵 今天来聊聊Visual C 中函数的覆盖和函数的隐藏 Visual C 中函数的覆盖和函数的隐藏与JAVA有很大不同 有些容易搞错的点和概念 我们要特别注意 首先 先满足一下急性子的同学 因为
  • 思科模拟器:nat地址转换-静态转换-动态转换-pat转换

    我么需要的环境 sw1为公司出口 192开头的网段为内网也就是公司内部 1动态 缺点 只能外网访问内网 内网无法访问外网 2静态 缺点 比如有两个公网ip如果在有两个人上网的时候 第三个人无法上网 由于使用设备不固定所以 外网无法访问内网
  • https证书过期处理方案及相关问题

    证书过期处理 1 替换证书操作 2 问题及处理 1 替换证书操作 证书由甲方提供 也可以去阿里云进行申请 前往nginx安装目录下的 conf cert替换旧的证书 目录 nginx conf cert 重启nginx操作 https bl
  • Android 开发中的权限申请

    一 权限动态申请 我们都知道 从 Android 6 0 开始 部分危险权限在 xml 注册的同时 还需要动态申请 1 需要动态申请的权限 Manifest permission CONTACTS 联系人 Manifest permissi
  • Pytorch 学习(三)sigmoid 逻辑回归预测

    1 数据预处理 处理多特征样本 import pandas as pd data pd read csv csv 划分数据 iloc 第一个参数 行 第二个参数 列 X data iloc 1 标签为 1 1 讲 1 替换为 0 Y dat
  • Shell中的幽灵王者—JAVAWEB 内存马 【认知篇】

    Goby社区第 21 篇技术分享文章 全文共 6700 字 预计阅读时间 17 分钟 自我介绍 大家好 我是 su18 无论是个人博客还是社区 已经很久没写技术文章了 原因有很多 时间 精力 心态等等 但在开源社区也算比较活跃 由于工作需要
  • JSONUtil.toJsonStr 时间变成了时间戳

    问题描述 我的接口是以Date来接收日期的 然后我在拿到这个对象参数后 通过hutool当中的JSONUtil toJsonStr将其序列化成json字符串 然后存储到数据库 然后存储到数据库当中发现这个字段是时间戳 DateTimeFor
  • 在Spring Boot使用Undertow服务

    1 undertow简介 Undertow是RedHAT红帽公司开源的产品 采用JAVA开发 是一款灵活 高性能的web服务器 提供了NIO的阻塞 非阻塞API 也是Wildfly的默认Web容器 在javaweb容器的世界里 Tomcat
  • mysql数据库三大引擎优缺点

    1 MyISAM 特性 不支持事务 表级锁定 并发性能大大降低 读写互相阻塞 适用场景 不支持事务 并发相对较低 表锁定 执行大量select语句操作的表 count 操作较快 不支持外键 注 查询速度快的原因 a MyISAM存储的直接是
  • sqlserver自动定时备份数据库并按日期命名

    sqlserver自动定时备份数据库并按日期命名 备份数据库是很有必要的 在维护软件和站点的时候关系到我们数据的安全和完整性 数据库为我们提供了自动备份功能 定时自动备份 SqlServerde 的维护计划中自带了备份数据库任务 并不是自动
  • Python 各种画图

    文章目录 Part I 基础知识 Chap I 快应用 Chap II 常用语句 Part II 画图样例 Chap I 散点图 Chap II 柱状图 Chap III 折线图 Chap IV 概率分布直方图 Chap V 累计概率分布曲
  • 用Python自动化处理Excel表格详解

    Excel表格基础知识 Excel表格可以帮助用户创建 编辑 格式化和计算数据 并生成各种图表和报表 Excel表格通常用于商业 金融 科学 教育等领域 Excel表格的常用操作 Excel表格的常用操作包括插入 删除 移动 复制 粘贴 排
Powered by Hwhale