6个Python办公黑科技,助你提升工作效率

 更新时间:2021年08月27日 14:59:32   作者:不吃西红柿丶  
这篇文章主要介绍了Python办公黑科技,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下

一、解析PDF(简历内推)

应用场景:简历内推(解析内容:包括不限于姓名、邮箱、电话号码、学历等信息)

输入:要解析的文件路径

输出:需要解析的内容(点我主页,详见历史文章)

环境准备:python 3.6 、mac(下文中doc转docx是mac写法,windows更简单,导入win32的包即可)

依赖包:

# encoding: utf-8
import os, sys
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.layout import LAParams
from pdfminer.converter import PDFPageAggregator

二、发送邮件

有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从 urls 接收的数据的 urllib.request 以及用于发送电子邮件的 smtplib:

import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

参数说明:

host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。

port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。

local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。

Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

参数说明:

  • from_addr: 邮件发送者地址。
  • to_addrs: 字符串列表,邮件发送地址。
  • msg: 发送消息

案例:

#!/usr/bin/python# -*- coding: UTF-8 -*- 
import smtplibfrom email.mime.text 
import MIMETextfrom email.header 
import Header sender = 'from@runoob.com'
# 西红柿微:ZPYDWXYreceivers = ['1221121@qq.com']  
# 接收邮件,可设置为你的QQ邮箱或者其他邮箱 
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')message['From'] = Header("不吃西红柿", 'utf-8')   
# 发送者message['To'] =  Header("测试", 'utf-8')        
# 接收者 subject = 'Python SMTP 邮件测试'message['Subject'] = Header(subject, 'utf-8')  
try:    smtpObj = smtplib.SMTP('localhost')    smtpObj.sendmail(sender, receivers, message.as_string())    
print "邮件发送成功"except smtplib.SMTPException:    
print "Error: 无法发送邮件"

三、操作execl

1. 关联公式:Vlookup

vlookup是excel几乎最常用的公式,一般用于两个表的关联查询等。所以我先把这张表分为两个表。

#查看订单明细号是否重复,结果是没。
df1["订单明细号"].duplicated().value_counts()
df2["订单明细号"].duplicated().value_counts()

df_c=pd.merge(df1,df2,on="订单明细号",how="left")

2. 数据透视表

需求:想知道每个地区的业务员分别赚取的利润总和与利润平均数。

pd.pivot_table(sale,index="地区名称",columns="业务员名称",values="利润",aggfunc=[np.sum,np.mean])

3. 对比两列差异

需求:比较订单明细号与订单明细号2的差异并显示出来。

sale["订单明细号2"]=sale["订单明细号"]

#在订单明细号2里前10个都+1.
sale["订单明细号2"][1:10]=sale["订单明细号2"][1:10]+1

#差异输出
result=sale.loc[sale["订单明细号"].isin(sale["订单明细号2"])==False]

4. 去除重复值

需求:去除业务员编码的重复值

sale.drop_duplicates("业务员编码",inplace=True)

5. 缺失值处理

#用0填充缺失值
sale["客户名称"]=sale["客户名称"].fillna(0)
#删除有客户编码缺失值的行
sale.dropna(subset=["客户编码"])

6. 多条件筛选

需求:想知道业务员张爱,在北京区域卖的商品订单金额大于6000的信息。

sale.loc[(sale["地区名称"]=="北京")&(sale["业务员名称"]=="张爱")&(sale["订单金额"]>5000)]

7. 模糊筛选数据

需求:筛选存货名称含有"三星"或则含有"索尼"的信息。

sale.loc[sale["存货名称"].str.contains("三星|索尼")]

8. 分类汇总

需求: 北京区域各业务员的利润总额。

sale.groupby(["地区名称","业务员名称"])["利润"].sum()

9. 条件计算

需求:存货名称含“三星字眼”并且税费高于1000的订单有几个?这些订单的利润总和和平均利润是多少?(或者最小值,最大值,四分位数,标注差)

sale.loc[sale["存货名称"].str.contains("三星")&(sale["税费"]>=1000)][["订单明细号","利润"]].describe()

10. 删除数据间的空格

需求:删除存货名称两边的空格。

sale["存货名称"].map(lambda s :s.strip(""))

四、画图分析

英雄联盟防御力:

防御能力最低的英雄(1级): 暗夜猎手,魔法猫咪,万花通灵

防御能力最高的英雄(10级): 正义巨像,披甲龙龟

安妮、卡尔玛能力矩阵:

代码示例:

# encoding: utf-8
import json
from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.charts import Radar



def draw_Radar():
    from pyecharts.charts import Radar
    radar = Radar()
    # //由于雷达图传入的数据得为多维数据,所以这里需要做一下处理
    radar_data = [[10, 10, 10, 10, 10]]
    radar_data1 = [[2, 10, 3, 6, 3]]
    radar_data2 = [[1, 8, 7, 5, 8]]

    # //设置column的最大值,为了雷达图更为直观,这里的月份最大值设置有所不同
    schema = [
        ("物理", 100), ("魔法", 10), ("防御", 10),("难度", 10),("喜好", 10)
    ]
    # //传入坐标
    radar.add_schema(schema)
    radar.add("满分", radar_data)
    # //一般默认为同一种颜色,这里为了便于区分,需要设置item的颜色
    radar.add("安妮", radar_data1, color="#E37911")
    radar.add("卡尔玛", radar_data2, color="#1C86EE")
    radar.render()

if __name__ == '__main__':

    draw_Radar()



五、解析word(docx、doc)

依赖包:

# encoding: utf-8
import os, sys
import docx
def word_reader(file):
    try:
        # docx 直接读
        if 'docx' in file:
            res = ''
            f = docx.Document(file)
            for para in f.paragraphs:
                res = res + '\n' +para.text
        else:
            # 先转格式doc>docx
            os.system("textutil -convert docx '%s'"%file)
            word_reader(file+'x')
            res = ''
            f = docx.Document(file+'x')
            for para in f.paragraphs:
                res = res + '\n' +para.text
        return res
    except:
        # print(file, 'read failed')
        return ''

六、计算器

math模块为浮点运算提供了对底层函数库的访问:

>>> import math
>>> math.cos(math.pi / 4)
0.70710678118654757
>>> math.log(1024, 2)
10.0

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 用python爬取分析淘宝商品信息详解技术篇

    用python爬取分析淘宝商品信息详解技术篇

    这篇文章主要介绍了用python爬取分析淘宝商品信息的技术,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Python3 sys.argv[ ]用法详解

    Python3 sys.argv[ ]用法详解

    这篇文章主要介绍了Python3 sys.argv[ ]用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • python使用pygame实现笑脸乒乓球弹珠球游戏

    python使用pygame实现笑脸乒乓球弹珠球游戏

    这篇文章主要为大家详细介绍了python使用pygame实现笑脸乒乓球弹珠球游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Python中requests库的用法详解

    Python中requests库的用法详解

    本文详细讲解了Python中requests库的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 利用python查看官方文档

    利用python查看官方文档

    这篇文章主要介绍了利用python查看官方文档,我们在学习和工作中,总是会遇到一些问题,或许官方文档能解决这一问题,下面我们就来看看python如何查看官方文档吧
    2022-01-01
  • 详解python3 GUI刷屏器(附源码)

    详解python3 GUI刷屏器(附源码)

    这篇文章主要介绍了详解python3 GUI刷屏器(附源码),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Pytorch使用shuffle打乱数据的操作

    Pytorch使用shuffle打乱数据的操作

    这篇文章主要介绍了Pytorch使用shuffle打乱数据的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • OpenCV+Python3.5 简易手势识别的实现

    OpenCV+Python3.5 简易手势识别的实现

    这篇文章主要介绍了OpenCV+Python3.5 简易手势识别的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python编程Flask框架简单使用教程

    python编程Flask框架简单使用教程

    这篇文章主要为大家介绍了python编程中Flask框架简单使用教程,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • python2和python3的输入和输出区别介绍

    python2和python3的输入和输出区别介绍

    这篇文章主要介绍了python2和python3的输入和输出区别介绍,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11

最新评论