利用 Python 实现 Excel 办公常用操作!

本文介绍了如何利用Python的pandas库实现Excel的常见操作,包括Python与Excel的交互、vlookup函数的实现、数据透视表的创建以及使用plotly进行图表绘制。通过实例解析了vlookup的多种用法,展示了如何用Python简化复杂的数据查找和处理任务,同时也探讨了数据透视表在pandas中的高效应用,以及用plotly绘制交互式图表的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文用的主要是pandas,绘图用的库是plotly,实现的Excel的常用功能有:

  • Python和Excel的交互

  • vlookup函数

  • 数据透视表

  • 绘图

以后如果发掘了更多Excel的功能,会回来继续更新和补充。开始之前,首先按照惯例加载pandas包:

import numpy as np
import pandas as pd
pd.set_option('max_columns', 10)
pd.set_option('max_rows', 20)
pd.set_option('display.float_format', lambda x: '%.2f' % x) # 禁用科学计数法

一、Python和Excel的交互

pandas里最常用的和Excel I/O有关的四个函数是read_csv/ read_excel/ to_csv/ to_excel,它们都有特定的参数设置,可以定制想要的读取和导出效果。比如说想要读取这样一张表的左上部分:

可以用pd.read_excel("test.xlsx", header=1, nrows=17, usecols=3),返回结果:

df
       工号   姓名 性别  部门
0   A0001   张伟  男  工程
1   A0002  王秀英  女  人事
2   A0003   王芳  女  行政
3   A0004   郑勇  男  市场
4   A0005   张丽  女  研发
5   A0006   王艳  女  后勤
6   A0007   李勇  男  市场
7   A0008   李娟  女  工程
8   A0009   张静  女  人事
9   A0010   王磊  男  行政
10  A0011   李娜  女  市场
11  A0012  刘诗雯  女  研发
12  A0013   王刚  男  后勤
13  A0014   叶倩  女  后勤
14  A0015  金雯雯  女  市场
15  A0016  王超杰  男  工程
16  A0017   李军  男  人事

输出函数也同理,使用多少列,要不要index,标题怎么放,都可以控制。

二、vlookup函数

vlookup号称是Excel里的神器之一,用途很广泛,下面的例子来自豆瓣,VLOOKUP函数最常用的10种用法,你会几种?

【案例一】

问题:A3:B7单元格区域为字母等级查询表,表示60分以下为E级、60~69分为D级、70~79分为C级、80~89分为B级、90分以上为A级。D:G列为初二年级1班语文测验成绩表,如何根据语文成绩返回其字母等级?

方法:在H3:H13单元格区域中输入=VLOOKUP(G3, $A$3:$B$7, 2)

python实现:

df = pd.read_excel("test.xlsx", sheet_name=0)
def grade_to_point(x):
    if x >= 90:
        return 'A'
    elif x >= 80:
        return 'B'
    elif x >= 70:
        return 'C'
    elif x >= 60:
        return 'D'
    else:
        return 'E'

df['等级'] = df['语文'].apply(grade_to_point)
df
    学号   姓名 性别   语文 等级
0   101  王小丽  女   69  D
1   102  王宝勤  男   85  B
2   103  杨玉萍  女   49  E
3   104  田东会  女   90  A
4   105  陈雪蛟  女   73  C
5   106  杨建丰  男   42  E
6   107  黎梅佳  女   79  C
7   108   张兴   男   91  A
8   109  马进春  女   48  E
9   110  魏改娟  女  100  A
10  111  王冰研  女   64  D

【案例二】

问题:在Sheet1里面如何查找折旧明细表中对应编号下的月折旧额?(跨表查询)

方法:在Sheet1里面的C2:C4单元格输入 =VLOOKUP(A2, 折旧明细表!A$2:$G$12, 7, 0)

python实现:使用merge将两个表按照编号连接起来就行

df1 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值