当前位置: 首页 > article >正文

Python 操作 Excel 表格从简单到高级用法

Python 操作 Excel 表格主要通过几个流行的库来实现,包括 pandas、openpyxl 和 xlsxwriter。下面是使用这些库进行常见操作的一些示例代码片段。
#一、简单操作

使用 pandas

#读取 Excel 文件 
import pandas as pd

# 读取整个Excel文件
df = pd.read_excel('example.xlsx')

# 读取特定工作表
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')
 
2.  写入 Excel 文件 
# 将 DataFrame 写入新的 Excel 文件
df.to_excel('output.xlsx', index=False)

# 写入指定工作表
with pd.ExcelWriter('output.xlsx') as writer:
    df.to_excel(writer, sheet_name='New Sheet', index=False)

使用 openpyxl

1.  安装 openpyxl 
pip install openpyxl
 
2.  读取单元格数据 
from openpyxl import load_workbook

wb = load_workbook('example.xlsx')
ws = wb['Sheet1']
cell_value = ws['A1'].value
print(cell_value)
 
3.  写入单元格数据 
from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws['A1'] = 'Hello'
ws['B1'] = 'World!'

wb.save('output.xlsx')

使用 xlsxwriter

1.  安装 xlsxwriter 
pip install XlsxWriter
 
2.  创建新工作簿并写入数据 
import xlsxwriter

workbook = xlsxwriter.Workbook('output.xlsx')
worksheet = workbook.add_worksheet()

worksheet.write('A1', 'Hello')
worksheet.write('B1', 'World!')

workbook.close()

二、高级用法

当然,Python 操作 Excel 时,除了基础的读写操作外,还有许多高级玩法可以提升工作效率和数据处理能力。下面通过几个例子来展示如何利用 pandas 和 openpyxl 库进行更复杂的数据处理和格式化。

使用 pandas 进行高级数据处理

1.  数据透视表(Pivot Table) 
import pandas as pd

# 假设df是从Excel读取的数据
df = pd.read_excel('sales_data.xlsx')

# 创建数据透视表
pivot_table = pd.pivot_table(df, values='Sales', index=['Manager'], columns=['Product'],
                             aggfunc=np.sum, fill_value=0)

# 输出到新的Excel文件
pivot_table.to_excel('pivot_sales.xlsx')
 
2.  数据清洗与转换(Data Cleaning and Transformation) 
# 去除空值
df_cleaned = df.dropna()

# 替换特定值
df_cleaned['Status'] = df_cleaned['Status'].replace({'inactive': 'Inactive'})

# 重命名列
df_cleaned.rename(columns={'OldName': 'NewName'}, inplace=True)

使用 openpyxl 进行高级格式化

1.  条件格式(Conditional Formatting) 
from openpyxl import Workbook
from openpyxl.styles import PatternFill
from openpyxl.formatting.rule import CellIsRule

# 创建工作簿和工作表
wb = Workbook()
ws = wb.active

# 填充数据
for i in range(1, 11):
    ws.cell(row=i, column=1).value = i * 10

# 定义填充样式
red_fill = PatternFill(start_color='FF0000', end_color='FF0000', fill_type='solid')

# 添加条件格式规则:如果A列的值大于50,则背景色为红色
rule = CellIsRule(operator='>', formula=['50'], fill=red_fill)
ws.conditional_formatting.add('A1:A10', rule)

# 保存文件
wb.save('conditional_format.xlsx')
 
2.  插入图表(Creating Charts) 
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

# 假设已有数据
wb = Workbook()
ws = wb.active

# 添加数据
for i in range(1, 4):
    ws.cell(row=1, column=i+1).value = f'Series {i}'
    for j in range(1, 4):
        ws.cell(row=j+1, column=i+1).value = i * j

# 创建柱状图
chart = BarChart()
data = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=4)
cats = Reference(ws, min_col=1, min_row=2, max_row=4)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
chart.title = "Sample Bar Chart"
ws.add_chart(chart, "E2")

# 保存文件
wb.save('chart_example.xlsx')

以上示例展示了如何使用 Python 对 Excel 进行复杂的数据分析、数据清洗、条件格式化以及图表插入等高级操作,这些技巧能极大提高数据处理的效率和质量。


http://www.kler.cn/a/393171.html

相关文章:

  • 今日 AI 简报 | 开源 RAG 文本分块库、AI代理自动化软件开发框架、多模态统一生成框架、在线图像背景移除等
  • 数据库SQL——连接表达式(JOIN)图解
  • Vue 3 介绍及应用
  • [代码随想录Day10打卡] 理论基础 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项
  • 算法——二分查找(leetcode704)
  • python实战(八)——情感识别(多分类)
  • C 语言 数组交换最小值和最大值
  • goframe开发一个企业网站 统一返回响应码 18
  • 2024-11-13 Unity Addressables2——寻址资源设置
  • 【vue2.0入门】vue基本语法
  • 【论文笔记】Prefix-Tuning: Optimizing Continuous Prompts for Generation
  • Spring框架之策略模式 (Strategy Pattern)
  • NoETL
  • 【网络安全】OSI网络安全体系结构
  • 接口自动化分支管理规范
  • Android音频架构
  • <websocket><PLC>使用js和html实现webscoket,与PLC进行socket通讯的实例
  • SPSS频率统计计算公式示例
  • 电子电气架构 ---车载以太网络环境下的安全威胁
  • 1. ShardingJDBC实际使用01
  • 详解机器学习经典模型(原理及应用)——DBSCAN
  • C++网络编程之SSL/TLS加密通信
  • turtlesim修改窗口大小;添加自己的小乌龟;
  • React Native 全栈开发实战班 - 列表与滚动视图
  • 【无线传感器网络】数据集合集!
  • 云服务器搭建及Docker使用---清风