国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

用 python 做數(shù)據(jù)分析:pandas 的 excel 應(yīng)用初探

aervon / 3042人閱讀

摘要:今天要分享的是,用來(lái)寫(xiě)。數(shù)據(jù)處理環(huán)節(jié)效率低下,易受干擾。問(wèn)題排查難以溯源。一旦數(shù)據(jù)報(bào)告有誤,想要定位問(wèn)題所在,常常需要從頭開(kāi)始復(fù)盤(pán)。結(jié)果和上面結(jié)果結(jié)構(gòu)是一致的。這是官網(wǎng)的文檔,但是卻不完全適用目前的場(chǎng)景。

大毛 豈安科技業(yè)務(wù)風(fēng)險(xiǎn)分析師
多年訂單業(yè)務(wù)反欺詐經(jīng)驗(yàn),負(fù)責(zé)豈安科技多款產(chǎn)品運(yùn)營(yíng)工作。

上回筆者分享過(guò)一些 pandas 的常用數(shù)據(jù)查詢(xún)語(yǔ)法,但是數(shù)據(jù)查詢(xún)對(duì)于 pandas 而言只是冰山一角,它還有著更多更有價(jià)值的的應(yīng)用場(chǎng)景。今天要分享的是,用 pandas 來(lái)寫(xiě) excel。

我的數(shù)據(jù)分析工作經(jīng)常是在這樣的場(chǎng)景下開(kāi)展的:數(shù)據(jù)格式五花八門(mén),有些存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)內(nèi),有些則是 csv 或者是 json,而最后老板想要的數(shù)據(jù)報(bào)告是 excel 版本的。

在沒(méi)有使用 pandas 處理數(shù)據(jù)以前,我會(huì)周旋在各個(gè)數(shù)據(jù)源之間,將取完的數(shù)之后黏貼到 excel 中,最終在統(tǒng)一在 excel 內(nèi)進(jìn)行處理。

這個(gè)操作有一些缺陷:

? 各個(gè)數(shù)據(jù)源取數(shù)方法不統(tǒng)一。自己掌握可以通過(guò)反復(fù)操作熟練,一旦教授給新人需要花更多時(shí)間。
? 數(shù)據(jù)處理環(huán)節(jié)效率低下,易受干擾。在頻繁的復(fù)制黏貼中,很難確保不受外界干擾,一旦恍神了,很難想起剛剛的取數(shù)的一些細(xì)節(jié)。并且過(guò)多的復(fù)制黏貼可能導(dǎo)致excel崩潰。
? 問(wèn)題排查難以溯源。仔細(xì)想來(lái),excel承擔(dān)了打草稿的功能,在多次復(fù)制黏貼之后,沒(méi)有人會(huì)清楚記得每一步為什么復(fù)制黏貼。一旦數(shù)據(jù)報(bào)告有誤,想要定位問(wèn)題所在,常常需要從頭開(kāi)始復(fù)盤(pán)。

?如果把數(shù)據(jù)的獲取到處理全部交給 pandas 呢?

這樣一來(lái) excel 只負(fù)責(zé)最終呈現(xiàn)層面的功能。為了實(shí)現(xiàn)這些,除了 pandas 本身強(qiáng)大的數(shù)據(jù)分析功能之外,還得益于兩點(diǎn):

pandas 良好的數(shù)據(jù)讀取接口

xlsxwriter

良好的數(shù)據(jù)讀取接口

一旦 import pandas as pd 了之后,就可以任意的 pd.read_json / pd.read_csv / pd.read_sql 了,是不是很方便?

example.json
[{
      "teamName": "GoldenArch", 
      "distCode": 04, 
      "distArea": "Shanghai", 
      "month": 11, 
      "income": 16255, 
      "cost": 30250,
},
{
      "teamName": "OldFather", 
      "distCode": 02, 
      "distArea": "Beijing", 
      "month": 11, 
      "income": 135300, 
      "cost": 27200,
}]

結(jié)果

csv,相對(duì)省力,甚至可以用 excel 直接打開(kāi)處理,不過(guò)這種方式影響到了這個(gè)數(shù)據(jù)處理方案的一致性。舉例略。

data_csv = pd.read_csv("example.csv")

結(jié)果和上面json結(jié)果結(jié)構(gòu)是一致的。

sql,最復(fù)雜的一項(xiàng),在 read_sql 之前,你還需要關(guān)心數(shù)據(jù)庫(kù)連接問(wèn)題,和要處理的 sql 語(yǔ)句問(wèn)題。
這里我遭遇的坑在后者,如果你打算用 read_sql 打入 dataframe 的是一張大表,那么可以暫時(shí)放棄這個(gè)念頭,因?yàn)樵?read_sql 的過(guò)程中,雖然讀表很快,但是寫(xiě)入 dataframe 的速度卻受制于數(shù)據(jù)規(guī)模,個(gè)人建議是,如果人類(lèi)沒(méi)有耐心把這些數(shù)據(jù)一一讀完,那么就不要打給 dataframe,至少在目前的 0.20 版本是這樣。不過(guò)好在我們可以在語(yǔ)句上做處理,在 where 之后按需做一些 group 或者 limit。

#數(shù)據(jù)庫(kù)連接部分
import pymysql
def getConn():
    connect_config = {
        "host":"0.1.0.1",
        "port":8888,
        "user":"myname",
        "password":"mypassword",
        "db":"mydb",
                "charset":"utf8"
    }
    conn = pymysql.connect(**connect_config)
    return conn
#實(shí)例化連接對(duì)象
conn = getConn()
#語(yǔ)句
sql = "select company, sum(totaAmount) from myTable where ... and ... group by company"
#最熟悉的語(yǔ)法
data_sql = pd.read_sql(sql,con=conn)

結(jié)果和上面 json 結(jié)果結(jié)構(gòu)是一致的

這個(gè)環(huán)節(jié)最大的收益就是將所有來(lái)源的數(shù)據(jù) dataframe 或者 series 化了,然后就可以統(tǒng)一用 pandas 功能來(lái)進(jìn)行下一步數(shù)據(jù)處理工作。數(shù)據(jù)處理環(huán)節(jié)環(huán)節(jié)太龐大,本文不做描述。這里我們跳過(guò)了處理環(huán)節(jié),直奔 excel。

xlsxwriter

這個(gè)包的作用就是用 python 語(yǔ)法來(lái)寫(xiě) excel 文件,在把所有關(guān)心的數(shù)據(jù)都裁剪完成后,下一步就是把它們按需塞進(jìn) excel 中。
import xlsxwriter 之后,用三行代碼就能用 python 創(chuàng)建一個(gè) excel 文件。

workbook = xlsxwriter.Workbook("helloworld.xlsx")
worksheet = workbook.add_worksheet(‘made by xlsxwriter’)
workbook.close()

簡(jiǎn)單吧,看字面意思就能理解——先創(chuàng)建文件,再創(chuàng)建表單,最后關(guān)閉。這是官網(wǎng)的文檔,但是卻不完全適用目前的場(chǎng)景。因?yàn)椋覀冃枰柚?pandas 來(lái)寫(xiě),而不是直接寫(xiě)。

  df = pd.DataFrame({"Data": [10, 20, 30, 20, 15, 30, 45]})
    writer = pd.ExcelWriter("example2.xlsx", engine="xlsxwriter")
    df.to_excel(writer, sheet_name="Sheet1")
    writer.save()

這也是官網(wǎng)的文檔,這兩種方法處理 excel 都可以,區(qū)別是前者是可以方便地指定打在哪些格子里,而后者是將數(shù)據(jù)作為一個(gè)整體的打入 excel,這里更推薦后者。如果是多個(gè)不同數(shù)據(jù)源或者不同意義的數(shù)據(jù),可以在 to_excel 的時(shí)候,新增一些 Sheet 來(lái)分類(lèi)數(shù)據(jù),sheet_name 參數(shù),使得你能自如的掌控?cái)?shù)據(jù)的內(nèi)容。

所謂的塞數(shù)據(jù)也就是把你最終處理完的 dataframe 或者 series 交給了 excel,用 sheet_name 來(lái)管理不同意義的數(shù)據(jù)。
取數(shù)工作一般是周期性的,在數(shù)據(jù)需求沒(méi)有產(chǎn)品化之前,需要利用更高效的工具來(lái)壓縮取數(shù)環(huán)節(jié)所耗費(fèi)的時(shí)間,將更多的精力留給數(shù)據(jù)分析之后結(jié)論以及建議上,畢竟分析才是數(shù)據(jù)價(jià)值。
上述方案比 excel+ 復(fù)制黏貼來(lái)的高效且可靠,既統(tǒng)一了數(shù)據(jù)采集方式,又使得取數(shù)過(guò)程可視化且易于維護(hù)。成本則是你需要花一些時(shí)間閱讀 pandas 和 xlsxwriter 的文檔,而 python 環(huán)境的搭建幾乎是零成本的。

xlsxwriter文檔:http://xlsxwriter.readthedocs.io
pandas文檔:http://pandas.pydata.org/pand...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/17653.html

相關(guān)文章

  • python 數(shù)據(jù)分析pandas excel 應(yīng)初探

    摘要:今天要分享的是,用來(lái)寫(xiě)。數(shù)據(jù)處理環(huán)節(jié)效率低下,易受干擾。問(wèn)題排查難以溯源。一旦數(shù)據(jù)報(bào)告有誤,想要定位問(wèn)題所在,常常需要從頭開(kāi)始復(fù)盤(pán)。結(jié)果和上面結(jié)果結(jié)構(gòu)是一致的。這是官網(wǎng)的文檔,但是卻不完全適用目前的場(chǎng)景。 大毛 豈安科技業(yè)務(wù)風(fēng)險(xiǎn)分析師 多年訂單業(yè)務(wù)反欺詐經(jīng)驗(yàn),負(fù)責(zé)豈安科技多款產(chǎn)品運(yùn)營(yíng)工作。 上回筆者分享過(guò)一些 pandas 的常用數(shù)據(jù)查詢(xún)語(yǔ)法,但是數(shù)據(jù)查詢(xún)對(duì)于 pandas 而言只是冰...

    張憲坤 評(píng)論0 收藏0
  • Python數(shù)據(jù)分析Pandas數(shù)據(jù)查詢(xún)語(yǔ)法

    摘要:在使用之前,大多數(shù)數(shù)據(jù)分析師已經(jīng)掌握了和,并且在剛上手時(shí)會(huì)經(jīng)常習(xí)慣性想到老辦法。這種根據(jù)列值選取行數(shù)據(jù)的查詢(xún)操作,推薦使用方法。如果我又有一批數(shù)據(jù),需要將兩部分?jǐn)?shù)據(jù)合并。 大毛 豈安科技業(yè)務(wù)風(fēng)險(xiǎn)分析師 多年訂單業(yè)務(wù)反欺詐經(jīng)驗(yàn),負(fù)責(zé)豈安科技多款產(chǎn)品運(yùn)營(yíng)工作。 在使用Pandas之前,大多數(shù)數(shù)據(jù)分析師已經(jīng)掌握了Excel和SQL,并且在剛上手Pandas時(shí)會(huì)經(jīng)常習(xí)慣性想到老辦法。如果誰(shuí)能把...

    gghyoo 評(píng)論0 收藏0
  • 【精華分享】:轉(zhuǎn)行數(shù)據(jù)分析一份學(xué)習(xí)清單

    摘要:數(shù)據(jù)分析的發(fā)展方向一般有商業(yè)方向,行業(yè)分析業(yè)務(wù)方向,和機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘方向。機(jī)器學(xué)習(xí)的書(shū)籍推薦統(tǒng)計(jì)學(xué)習(xí)方法,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí)實(shí)戰(zhàn)三本書(shū)。 作者:xiaoyu 微信公眾號(hào):Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 上一篇主要分享了博主親身轉(zhuǎn)行數(shù)據(jù)分析的經(jīng)歷: 【從零學(xué)起到成功轉(zhuǎn)行數(shù)據(jù)分析,我是怎么做的?】 本篇繼上一篇將分享轉(zhuǎn)行數(shù)據(jù)分析的一些經(jīng)驗(yàn)和學(xué)習(xí)方法,看完這篇你將會(huì)解...

    suemi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<