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

資訊專欄INFORMATION COLUMN

用 python 做數據分析:pandas 的 excel 應用初探

張憲坤 / 762人閱讀

摘要:今天要分享的是,用來寫。數據處理環節效率低下,易受干擾。問題排查難以溯源。一旦數據報告有誤,想要定位問題所在,常常需要從頭開始復盤。結果和上面結果結構是一致的。這是官網的文檔,但是卻不完全適用目前的場景。

大毛 豈安科技業務風險分析師
多年訂單業務反欺詐經驗,負責豈安科技多款產品運營工作。

上回筆者分享過一些 pandas 的常用數據查詢語法,但是數據查詢對于 pandas 而言只是冰山一角,它還有著更多更有價值的的應用場景。今天要分享的是,用 pandas 來寫 excel。

我的數據分析工作經常是在這樣的場景下開展的:數據格式五花八門,有些存儲在關系型數據庫內,有些則是 csv 或者是 json,而最后老板想要的數據報告是 excel 版本的。

在沒有使用 pandas 處理數據以前,我會周旋在各個數據源之間,將取完的數之后黏貼到 excel 中,最終在統一在 excel 內進行處理。

這個操作有一些缺陷:

? 各個數據源取數方法不統一。自己掌握可以通過反復操作熟練,一旦教授給新人需要花更多時間。
? 數據處理環節效率低下,易受干擾。在頻繁的復制黏貼中,很難確保不受外界干擾,一旦恍神了,很難想起剛剛的取數的一些細節。并且過多的復制黏貼可能導致excel崩潰。
? 問題排查難以溯源。仔細想來,excel承擔了打草稿的功能,在多次復制黏貼之后,沒有人會清楚記得每一步為什么復制黏貼。一旦數據報告有誤,想要定位問題所在,常常需要從頭開始復盤。

?如果把數據的獲取到處理全部交給 pandas 呢?

這樣一來 excel 只負責最終呈現層面的功能。為了實現這些,除了 pandas 本身強大的數據分析功能之外,還得益于兩點:

pandas 良好的數據讀取接口

xlsxwriter

良好的數據讀取接口

一旦 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,
}]

結果

csv,相對省力,甚至可以用 excel 直接打開處理,不過這種方式影響到了這個數據處理方案的一致性。舉例略。

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

結果和上面json結果結構是一致的。

sql,最復雜的一項,在 read_sql 之前,你還需要關心數據庫連接問題,和要處理的 sql 語句問題。
這里我遭遇的坑在后者,如果你打算用 read_sql 打入 dataframe 的是一張大表,那么可以暫時放棄這個念頭,因為在 read_sql 的過程中,雖然讀表很快,但是寫入 dataframe 的速度卻受制于數據規模,個人建議是,如果人類沒有耐心把這些數據一一讀完,那么就不要打給 dataframe,至少在目前的 0.20 版本是這樣。不過好在我們可以在語句上做處理,在 where 之后按需做一些 group 或者 limit。

#數據庫連接部分
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
#實例化連接對象
conn = getConn()
#語句
sql = "select company, sum(totaAmount) from myTable where ... and ... group by company"
#最熟悉的語法
data_sql = pd.read_sql(sql,con=conn)

結果和上面 json 結果結構是一致的

這個環節最大的收益就是將所有來源的數據 dataframe 或者 series 化了,然后就可以統一用 pandas 功能來進行下一步數據處理工作。數據處理環節環節太龐大,本文不做描述。這里我們跳過了處理環節,直奔 excel。

xlsxwriter

這個包的作用就是用 python 語法來寫 excel 文件,在把所有關心的數據都裁剪完成后,下一步就是把它們按需塞進 excel 中。
import xlsxwriter 之后,用三行代碼就能用 python 創建一個 excel 文件。

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

簡單吧,看字面意思就能理解——先創建文件,再創建表單,最后關閉。這是官網的文檔,但是卻不完全適用目前的場景。因為,我們需要借助于 pandas 來寫,而不是直接寫。

  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()

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

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41046.html

相關文章

  • python 數據分析pandas excel初探

    摘要:今天要分享的是,用來寫。數據處理環節效率低下,易受干擾。問題排查難以溯源。一旦數據報告有誤,想要定位問題所在,常常需要從頭開始復盤。結果和上面結果結構是一致的。這是官網的文檔,但是卻不完全適用目前的場景。 大毛 豈安科技業務風險分析師 多年訂單業務反欺詐經驗,負責豈安科技多款產品運營工作。 上回筆者分享過一些 pandas 的常用數據查詢語法,但是數據查詢對于 pandas 而言只是冰...

    aervon 評論0 收藏0
  • Python數據分析Pandas數據查詢語法

    摘要:在使用之前,大多數數據分析師已經掌握了和,并且在剛上手時會經常習慣性想到老辦法。這種根據列值選取行數據的查詢操作,推薦使用方法。如果我又有一批數據,需要將兩部分數據合并。 大毛 豈安科技業務風險分析師 多年訂單業務反欺詐經驗,負責豈安科技多款產品運營工作。 在使用Pandas之前,大多數數據分析師已經掌握了Excel和SQL,并且在剛上手Pandas時會經常習慣性想到老辦法。如果誰能把...

    gghyoo 評論0 收藏0
  • 【精華分享】:轉行數據分析一份學習清單

    摘要:數據分析的發展方向一般有商業方向,行業分析業務方向,和機器學習數據挖掘方向。機器學習的書籍推薦統計學習方法,機器學習,機器學習實戰三本書。 作者:xiaoyu 微信公眾號:Python數據科學 知乎:python數據分析師 上一篇主要分享了博主親身轉行數據分析的經歷: 【從零學起到成功轉行數據分析,我是怎么做的?】 本篇繼上一篇將分享轉行數據分析的一些經驗和學習方法,看完這篇你將會解...

    suemi 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<