国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

6個(gè)Python辦公黑科技,助你提升工作效率

瀏覽:33日期:2022-08-06 17:10:18
目錄一、解析PDF(簡(jiǎn)歷內(nèi)推)二、發(fā)送郵件三、操作execl1. 關(guān)聯(lián)公式:Vlookup2. 數(shù)據(jù)透視表3. 對(duì)比兩列差異4. 去除重復(fù)值5. 缺失值處理6. 多條件篩選7. 模糊篩選數(shù)據(jù)8. 分類匯總9. 條件計(jì)算10. 刪除數(shù)據(jù)間的空格四、畫圖分析五、解析word(docx、doc)六、計(jì)算器總結(jié)一、解析PDF(簡(jiǎn)歷內(nèi)推)

應(yīng)用場(chǎng)景:簡(jiǎn)歷內(nèi)推(解析內(nèi)容:包括不限于姓名、郵箱、電話號(hào)碼、學(xué)歷等信息)

輸入:要解析的文件路徑

輸出:需要解析的內(nèi)容(點(diǎn)我主頁(yè),詳見(jiàn)歷史文章)

環(huán)境準(zhǔn)備:python 3.6 、mac(下文中doc轉(zhuǎn)docx是mac寫法,windows更簡(jiǎn)單,導(dǎo)入win32的包即可)

依賴包:

# encoding: utf-8import os, sysfrom pdfminer.pdfparser import PDFParserfrom pdfminer.pdfdocument import PDFDocumentfrom pdfminer.pdfpage import PDFPagefrom pdfminer.pdfinterp import PDFResourceManagerfrom pdfminer.pdfinterp import PDFPageInterpreterfrom pdfminer.layout import LAParamsfrom pdfminer.converter import PDFPageAggregator二、發(fā)送郵件

有幾個(gè)模塊用于訪問(wèn)互聯(lián)網(wǎng)以及處理網(wǎng)絡(luò)通信協(xié)議。其中最簡(jiǎn)單的兩個(gè)是用于處理從 urls 接收的數(shù)據(jù)的 urllib.request 以及用于發(fā)送電子郵件的 smtplib:

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

參數(shù)說(shuō)明:

host: SMTP 服務(wù)器主機(jī)。 你可以指定主機(jī)的ip地址或者域名如: runoob.com,這個(gè)是可選參數(shù)。

port: 如果你提供了 host 參數(shù), 你需要指定 SMTP 服務(wù)使用的端口號(hào),一般情況下 SMTP 端口號(hào)為25。

local_hostname: 如果 SMTP 在你的本機(jī)上,你只需要指定服務(wù)器地址為 localhost 即可。

Python SMTP 對(duì)象使用 sendmail 方法發(fā)送郵件,語(yǔ)法如下:

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

參數(shù)說(shuō)明:

from_addr: 郵件發(fā)送者地址。 to_addrs: 字符串列表,郵件發(fā)送地址。 msg: 發(fā)送消息

案例:

#!/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’] # 接收郵件,可設(shè)置為你的QQ郵箱或者其他郵箱 # 三個(gè)參數(shù):第一個(gè)為文本內(nèi)容,第二個(gè) plain 設(shè)置文本格式,第三個(gè) utf-8 設(shè)置編碼message = MIMEText(’Python 郵件發(fā)送測(cè)試...’, ’plain’, ’utf-8’)message[’From’] = Header('不吃西紅柿', ’utf-8’) # 發(fā)送者message[’To’] = Header('測(cè)試', ’utf-8’)# 接收者 subject = ’Python SMTP 郵件測(cè)試’message[’Subject’] = Header(subject, ’utf-8’) try: smtpObj = smtplib.SMTP(’localhost’) smtpObj.sendmail(sender, receivers, message.as_string()) print '郵件發(fā)送成功'except smtplib.SMTPException: print 'Error: 無(wú)法發(fā)送郵件'三、操作execl1. 關(guān)聯(lián)公式:Vlookup

vlookup是excel幾乎最常用的公式,一般用于兩個(gè)表的關(guān)聯(lián)查詢等。所以我先把這張表分為兩個(gè)表。

#查看訂單明細(xì)號(hào)是否重復(fù),結(jié)果是沒(méi)。df1['訂單明細(xì)號(hào)'].duplicated().value_counts()df2['訂單明細(xì)號(hào)'].duplicated().value_counts()df_c=pd.merge(df1,df2,on='訂單明細(xì)號(hào)',how='left')2. 數(shù)據(jù)透視表

需求:想知道每個(gè)地區(qū)的業(yè)務(wù)員分別賺取的利潤(rùn)總和與利潤(rùn)平均數(shù)。

pd.pivot_table(sale,index='地區(qū)名稱',columns='業(yè)務(wù)員名稱',values='利潤(rùn)',aggfunc=[np.sum,np.mean])3. 對(duì)比兩列差異

需求:比較訂單明細(xì)號(hào)與訂單明細(xì)號(hào)2的差異并顯示出來(lái)。

sale['訂單明細(xì)號(hào)2']=sale['訂單明細(xì)號(hào)']#在訂單明細(xì)號(hào)2里前10個(gè)都+1.sale['訂單明細(xì)號(hào)2'][1:10]=sale['訂單明細(xì)號(hào)2'][1:10]+1#差異輸出result=sale.loc[sale['訂單明細(xì)號(hào)'].isin(sale['訂單明細(xì)號(hào)2'])==False]4. 去除重復(fù)值

需求:去除業(yè)務(wù)員編碼的重復(fù)值

sale.drop_duplicates('業(yè)務(wù)員編碼',inplace=True)5. 缺失值處理

#用0填充缺失值sale['客戶名稱']=sale['客戶名稱'].fillna(0)#刪除有客戶編碼缺失值的行sale.dropna(subset=['客戶編碼'])6. 多條件篩選

需求:想知道業(yè)務(wù)員張愛(ài),在北京區(qū)域賣的商品訂單金額大于6000的信息。

sale.loc[(sale['地區(qū)名稱']=='北京')&(sale['業(yè)務(wù)員名稱']=='張愛(ài)')&(sale['訂單金額']>5000)]7. 模糊篩選數(shù)據(jù)

需求:篩選存貨名稱含有'三星'或則含有'索尼'的信息。

sale.loc[sale['存貨名稱'].str.contains('三星|索尼')]8. 分類匯總

需求: 北京區(qū)域各業(yè)務(wù)員的利潤(rùn)總額。

sale.groupby(['地區(qū)名稱','業(yè)務(wù)員名稱'])['利潤(rùn)'].sum()9. 條件計(jì)算

需求:存貨名稱含“三星字眼”并且稅費(fèi)高于1000的訂單有幾個(gè)?這些訂單的利潤(rùn)總和和平均利潤(rùn)是多少?(或者最小值,最大值,四分位數(shù),標(biāo)注差)

sale.loc[sale['存貨名稱'].str.contains('三星')&(sale['稅費(fèi)']>=1000)][['訂單明細(xì)號(hào)','利潤(rùn)']].describe()10. 刪除數(shù)據(jù)間的空格

需求:刪除存貨名稱兩邊的空格。

sale['存貨名稱'].map(lambda s :s.strip(''))四、畫圖分析

英雄聯(lián)盟防御力:

防御能力最低的英雄(1級(jí)): 暗夜獵手,魔法貓咪,萬(wàn)花通靈

防御能力最高的英雄(10級(jí)): 正義巨像,披甲龍龜

6個(gè)Python辦公黑科技,助你提升工作效率

安妮、卡爾瑪能力矩陣:

6個(gè)Python辦公黑科技,助你提升工作效率

代碼示例:

# encoding: utf-8import jsonfrom pyecharts.charts import Piefrom pyecharts import options as optsfrom pyecharts.charts import Radardef draw_Radar(): from pyecharts.charts import Radar radar = Radar() # //由于雷達(dá)圖傳入的數(shù)據(jù)得為多維數(shù)據(jù),所以這里需要做一下處理 radar_data = [[10, 10, 10, 10, 10]] radar_data1 = [[2, 10, 3, 6, 3]] radar_data2 = [[1, 8, 7, 5, 8]] # //設(shè)置column的最大值,為了雷達(dá)圖更為直觀,這里的月份最大值設(shè)置有所不同 schema = [('物理', 100), ('魔法', 10), ('防御', 10),('難度', 10),('喜好', 10) ] # //傳入坐標(biāo) radar.add_schema(schema) radar.add('滿分', radar_data) # //一般默認(rèn)為同一種顏色,這里為了便于區(qū)分,需要設(shè)置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-8import os, sysimport 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.textelse: # 先轉(zhuǎn)格式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.textreturn res except:# print(file, ’read failed’)return ’’六、計(jì)算器

math模塊為浮點(diǎn)運(yùn)算提供了對(duì)底層函數(shù)庫(kù)的訪問(wèn):

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

本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注好吧啦網(wǎng)的更多內(nèi)容!

標(biāo)簽: Python 編程
主站蜘蛛池模板: 鹤山市| 星子县| 大同市| 襄城县| 潞城市| 永川市| 鞍山市| 澄城县| 乌鲁木齐县| 襄城县| 清涧县| 上蔡县| 灵武市| 鱼台县| 沙田区| 潜山县| 亚东县| 宜宾县| 纳雍县| 灵丘县| 黔西| 永安市| 谷城县| 吉首市| 光山县| 锦州市| 宁强县| 莒南县| 客服| 中牟县| 浑源县| 老河口市| 连江县| 水城县| 镇赉县| 射阳县| 临朐县| 佛山市| 贡嘎县| 固原市| 那曲县|