<button id="2ddn7"><acronym id="2ddn7"></acronym></button>

<button id="2ddn7"><acronym id="2ddn7"></acronym></button>

  • <button id="2ddn7"><object id="2ddn7"></object></button>
      1. <s id="2ddn7"></s>
        更多課程 選擇中心


        Python培訓

        400-111-8989

        如何使用Python處理Excel

        • 發布: 覓食先生
        • 來源: 覓食先生
        • 時間:2017-09-01 12:10

        編程應該作為必修加入小學生課程表,這是思維方式的鍛煉。

        ——沃·茲基朔德(借梗)

        離開代碼也有快兩年了。期間其實一直有重新拾起的想法,只是沒有模板刺激的動力,加上又懶…

        剛好這段時間項目進入一個階段,一方面需要對上個階段的產品進行數據分析和整理,另一方面多了一些空閑時間,借此機會學習學習Python

        1. 需求

        BI給的數據報表比較原始,在excel里以多個sheet的形式出現,且對應的指標使用的是開發變量名稱,可讀性較差。

        當前目標是通過Python讀取BI生成的數據日報,然后以日期為橫軸,數據指標為縱軸重新輸出一份可讀性強報表。

        2. 流程

        第一步,安裝環境

        關鍵詞:Mac+Python安裝

        Mac上其實自帶Python,但是好像有一些問題。現在安裝Python很方便,有完全自動化的處理方式。

        教程:https://stringpiggy.hpd.io/mac-osx-python3-dual-install/

        第二步,Python的能力

        關鍵詞:Python + Excel處理

        編程語言大道萬千殊途同歸,由于已有編程基礎,Python作為腳本語言語法也比較簡單,因此準備直接從實際項目開始學習。

        首先思考的是,Python作為知名的「擅長數據處理」的語言,是否支持處理Excel表格(肯定是支持的…那是否需要額外安裝一些庫呢?)。

        答案是需要。不過已經有不少庫能夠做到這件事,我本次是根據教程選擇的xlrd(表格讀取)和xlwt(表格輸出)

        接下來要做的事情是讀取Excel和重新生成Excel。

        教程:http://blog.csdn.net/cloudox_/article/details/53812213

        直接復制教程代碼,在Terminal中運行測試。

        成功~而且代碼注釋已經十分完善,根據函數名稱、變量名稱和注釋,能夠很清晰的理解Excel庫的工作原理。

        第三步,處理簡單的數據日報Sheet

        關鍵詞:活學活用

        了解了基礎的Excel行列讀取操作后,就可以直接進入正題了。

        第一個Sheet很簡單,3列數據分別是日期、UV、PV。導出的表中有最近七天的數據。

        這個Sheet的結構和教程一模一樣,因此只需要在教程代碼的基礎上修改變量名稱就能夠實現輸出。

        第四步,整理縱向表

        關鍵詞:'合并+過濾'

        數據日報有很多Sheet,其中可以分為兩種結構。

        第一種是和教程結構一樣,第一列是時間,每一行代表每一天的數據。

        第二種是橫向的,每一行代表今天某項目的各組數據。

        從簡到難,先把第一類的Sheet搞定。剛剛已經成功解決了一個Sheet,剩下的只需要類似處理即可。但是這里又有一個問題——為了方便閱讀,我需要把各個表的數據導出到一個表里,避免反復切換的情況。

        解決:這個操作其實非常簡單,我們只需要把「讀取表-生成表」這個流程修改為「讀取表-讀取表-讀取表……-生成表」即可,即在最后一個表的數據讀取完之前,所有的數據線先存在一個列表里不輸出,等最后讀取結束后再統一輸出。

        問題:此時會遇到一個問題,因為在原表中,每一個Sheet的第一列都是時間。這樣生成的新表就會多出很多重復列。事實上我們只需要第一列時間——也就是過濾第一個表之后所有表的第一列數據。

        解決:根據表結構可以很容易就能想到,只要在第一個表之后,每次都從第二列開始讀取,就能夠過濾多余的時間列。

        問題:數據日報在生成第一類結構的數據時,事實上是會給出7天內的所有數據。那么在之后其實我只需要當日數據即可,如何過濾掉不需要的數據呢?

        解決:過濾日期,也就是說「只需要第一列是今天的數據」。代碼處理數據的邏輯是從左到右從上到下——也就是說一行一行的處理。那我們要做的事情就是,當發現本行數據的第一列(日期列)的值不等于今天的時候,就直接忽略此行(不添加到存儲列表里)。

        注意咯,由于我們在上一個問題中忽略了第一個表之后的日期列,在這個問題中我們需要重新使用此列進行判斷——當然,無論本行是否是今日數據,日期列仍然不會輸出到存儲列表中。

        為了方便處理,我們使用一個today變量輸入今天的時間(未來可以自動獲取)。

        第一類縱向表格處理起來比較簡單,都是在教程代碼的基礎上修改完成。

        第二類表格的處理方法我們下次再說。

        對了,Python有個重要的地方是字符編碼問題,當使用中文字符串時,請務必前面加一個關鍵字u,代表Unicode編碼,否則會出現讀取錯誤。

        作為一篇比以往更流水賬的文章,其實目的只是為了重啟「寫作」這個動作。

        之前因為想要追求較高的文稿質量,導致時間花費太多,一旦沒有時間就狀態中斷。這次重啟計劃其實沒有什么預期,只是臨時決定然后想要不拖延一次而已。

        無論如何,在沒有寫作能力的階段,寫下來,肯定比寫得好更重要。

        不要排版,不要質量,試試能夠堅持多久。

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:用Python驗證你的策略吧!——Zipline回測
        下一篇:Python學習之路-開發工具安裝

        2021年Python面試題及答案匯總詳解

        python數據分析,你需要這些工具

        Python培訓講解二叉樹的三種深度

        Python培訓:如何實現窮舉搜索?

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        黑龍江省

        吉林省

        河北省

        湖南省

        貴州省

        云南省

        廣西省

        海南省

        青青青草网站免费观看|青青青视频在线观看 超真实强奷视频在线看 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>