首頁>Club>
我目前主要負責資料分析,每天做報表,報表內容大學是幾百行,10幾列。主要內容就是每個銷售區域今日的開單量,金額,等等。 平時操作感覺還可以,用python操作excel會更高效嗎?我不會程式碼,但是可以學。
6
回覆列表
  • 1 # Bean蠶豆

    我的感受是算不上神奇,畢竟都是工具,只是應用的場合不同而已。

    每天幾百行,10幾列的資料,主要的內容是銷售資料

    從你的工作內容描述來看,其實Excel就可以高效完成,而且我覺得Excel會比python更高效。Excel的資料透視表我想可以做出很多意想不到的結果出來。以你目前的資料來看,單純從肉眼上看,利用Excel的計算結果和Python的計算結果是感覺不到兩者的差別的。相反Excel卻能更加自由便捷的使用,達到心中的期望。

    Python是一種語言,被廣泛應用在資料行業

    Python因為其易上手,跨平臺等特性,被認為是一種解釋性指令碼語言(膠水語言)。很多需要處理的問題通過幾行程式碼就解決掉。所以,你經常會看到利用python寫幾行程式碼就實現一個爬蟲,相當的快捷。

    Python處理Excel有相應的包xlrd,xlsxwriter等其它包,都可以實現對Excel的操作。我在平時的工作中也會利用Python去操作Excel,主要是讀和寫資料,就是從Excel讀取的資料寫到資料庫中,或者多平臺、多系統的資料透過Python計算後,將結果寫到Excel發給相應的工作人員。

    總的來說,如果單純地從單個工作來說,能在Excel中工作的,就在Excel中完成,如果想提高工作效率,即透過Python完成自動化,提高工作效率,那Python是不錯的選擇。

  • 2 # 小小猿愛嘻嘻

    所謂的神奇只不過是提供了大量第三方包,類似vba,將許多繁瑣的手動操作轉換為程式碼操作,提高了處理速度和工作效率,下面我簡單介紹3個常用的python excel處理包,感興趣的朋友可以嘗試一下:

    xlrd和xlwt

    這是2個非常基礎的python excel處理包,在日常excel處理中經常會用到,其中xlrd專門用去讀取excel,xlwt專門用於寫入excel,常見的單元格讀寫/合併、樣式背景色的設定以及行高/列高的設定等這2個包都可以輕鬆完成,對於一些繁瑣、重複的操作可以使用一下這2個包,簡單易學,非常容易入門,而且官方自帶有非常詳細的教程,非常適合初學者學習和掌握:

    openpyxl

    這也是桌面端比較常用的一個python excel處理庫,和xlrd、xlwt類似,openpyxl融合了excel的讀寫,因此不需要單獨分開編碼,常見的樣式設定、圖片/表格插入、公式/函式使用、單元格合併等基本操作這個模組都可以輕鬆完成,如果你有一定python基礎,熟悉openpyxl來說非常容易,官方有非常詳細的教程示例,所有程式碼都可以直接執行,需要注意的是openpyxl只適用於xlsx/xlsm,xls並不適用:

    pandas

    這是python針對資料處理專門提供的一個第三方模組,在日常實驗、報表等資料處理中經常會用到,內建了大量函式和型別(series/dataframe),可以輕鬆處理各種常見的檔案格式,包括excel、csv、json、txt等,操作靈活、功能強大,只需簡單幾行程式碼就可快速載入處理資料,還支援資料視覺化,在資料分析方面有著非常廣泛的應用,非常值得學習,可以大大減少工作量,提高工作效率:

    當然,除了以上3個常見的python excel處理庫,xlutils等也都非常不錯,基本使用方式和原理都是一樣的,官方也有參考程式碼和示例,只要你熟悉一下很快就能掌握的,至於選擇哪個包,簡單一些就是xlrd/xlwt、openpyxl,複雜一些就是pandas,神奇倒不至於,就是處理起來更方便而已,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。

  • 3 # 河沿卒179234258

    python處理excel一般,不建議使用。如果處理大量資料,可以試試,一般用途的很蹩腳,不要浪費時間了學了puthon操作excel。

  • 4 # 你看我獨角獸嗎

    Excel電子表格是您有時必須處理的事情之一。要麼是因為您的老闆喜歡它們,要麼是因為營銷需要它們,您可能必須學習如何使用電子表格,這才對瞭解openpyxl有用!

    電子表格是一種非常直觀且使用者友好的方式,無需任何技術背景即可操作大型資料集。這就是為什麼它們今天仍然如此普遍。

    在本文中,您將學習如何使用openpyxl執行以下操作:

    自信地處理Excel電子表格

    從電子表格中提取資訊

    建立簡單或更復雜的電子表格,包括新增樣式,圖表等

    本文是為那些對Python資料結構(如字典和列表)有相當瞭解而準備的,當然如果你有程式設計概念,你就可以學習,很容易上手。

    首先你得安裝這個工具包

    pip install openpyxl

    安裝軟體包後,您應該可以使用以下程式碼建立一個超級簡單的電子表格:

    from openpyxl import Workbookworkbook = Workbook()sheet =

    workbook.active

    sheet["A1"] = "hello"sheet["B1"] = "world!"workbook.save(filename="hello_world.xlsx")

    上面的程式碼應hello_world.xlsx在用於執行程式碼的資料夾中建立一個名為的檔案。如果您使用Excel開啟該檔案,則應該看到類似以下內容的內容:

    恭喜你,你已經成功建立第一個電子表格!那讓我們開始閱讀一些電子表格!首先,開啟示例電子表格:

    >>> from openpyxl import load_workbook>>> workbook = load_workbook(filename="sample.xlsx")>>> workbook.sheetnames["Sheet 1"]>>> sheet =

    workbook.active

    >>> sheet<Worksheet "Sheet 1">>>>

    sheet.title

    "Sheet 1"

    在上面的程式碼,你第一次開啟電子表格sample.xlsx使用load_workbook(),然後你可以使用

    workbook.sheetnames

    可檢視所有其他的工作表。之後,workbook.active選擇第一個可用的工作表,在這種情況下,您會看到它自動選擇了工作表1。

    現在,開啟電子表格後,您可以像這樣輕鬆地從其中檢索資料:

    >>> sheet["A1"]<Cell "Sheet 1".A1>>>> sheet["A1"].value"marketplace">>> sheet["F10"]

    .value

    "G-Shock Men"s Grey Sport Watch"

    要返回單元格的實際值,您需要執行

    .value

    。否則,您將獲得主要的單元格物件。您也可以使用該方法.cell()使用索引符號檢索單元格。請記住新增

    .value

    以獲取實際值而不是單元格物件:

    >>> sheet.cell(row=10, column=6)<Cell "Sheet 1".F10>>>> sheet.cell(row=10, column=6)

    .value

    "G-Shock Men"s Grey Sport Watch"

    上面顯示了開啟電子表格的最快方法。但是您也可以傳遞其他引數來更改電子表格的載入方式。

    經過以上簡單的功能敘述,您現在應該知道如何在Python中使用電子表格了!openpyxl是以Python方式從電子表格中提取有價值的資訊,無論複雜程度如何,你也可以建立自己的電子表格,向電子表格中新增一些很酷的功能,例如條件格式或圖表。

  • 5 # 52sissi

      在有關大資料分析Python API的本教程中,我們將學習如何從遠端網站檢索資料以進行資料科學專案。像baidu,Twitter和Facebook之類的網站都透過其應用程式程式設計介面(API)向程式設計師提供某些資料。要使用API,你需要向遠端Web伺服器發出請求,然後檢索所需的資料。

      但是,為什麼要使用API而不是可以下載的靜態資料集呢?API在以下情況下很有用:

      a.資料變化很快。股票價格資料就是一個例子。重新生成資料集並每分鐘下載一次並沒有實際意義-這會佔用大量頻寬,而且速度很慢。

      c.涉及重複計算。Spotify的API可以告訴您音樂的流派。從理論上講,您可以建立自己的分類器,並使用它對音樂進行分類,但您將永遠不會擁有Spotify所擁有的資料。

      在上述情況下,API是正確的解決方案。對於本資料科學教程,我們將查詢一個簡單的API,以檢索有關國際空間站(ISS)的資料。使用API可以節省我們自己進行所有計算的時間和精力。

      大資料分析Python中的API請求

      API託管在Web伺服器上。當您www.google.com在瀏覽器的位址列中鍵入內容時,您的計算機實際上是在向www.google.com伺服器詢問網頁,然後該網頁返回到您的瀏覽器。

      API的工作方式幾乎相同,除了您的程式要求資料而不是您的Web瀏覽器詢問網頁之外。這些資料通常以JSON格式返回(有關更多資訊,請參閱有關使用JSON資料的教程)。

      為了獲取資料,我們向Web伺服器發出請求。然後,伺服器將回復我們的資料。在大資料分析Python中,我們將使用請求庫來執行此操作。在此大資料分析Python API教程中,我們將為所有示例使用大資料分析Python 3.4。

      請求型別

      有許多不同型別的請求。最常用的一個GET請求用於檢索資料。

      我們可以使用一個簡單的GET請求從OpenNotify API 檢索資訊。

      OpenNotify具有多個API端點。端點是用於從API檢索不同資料的伺服器路由。例如,/commentsReddit API上的端點可能會檢索有關注釋的資訊,而/users端點可能會檢索有關使用者的資料。要訪問它們,您可以將端點新增到API 的基本URL中。

      我們將在OpenNotify上看到的第一個端點是iss-now.json端點。該端點獲取國際空間站的當前緯度和經度。如您所見,檢索此資料不適用於資料集,因為它涉及伺服器上的一些計算,並且變化很快。

      您可以在此處檢視OpenNotify上所有端點的列表。

      OpenNotify API 的基本網址是http://api.open-notify.org,因此我們將其新增到所有端點的開頭。

      狀態碼

      我們剛剛發出的請求的狀態碼為200。向Web伺服器發出的每個請求都返回狀態程式碼。狀態程式碼指示有關請求發生的情況的資訊。以下是與GET請求相關的一些程式碼:

      a)200 -一切正常,結果已返回(如果有)

      b)301—伺服器正在將您重定向到其他端點。當公司切換域名或更改端點名稱時,可能會發生這種情況。

      d)400-伺服器認為您提出了錯誤的請求。當您沒有正確傳送資料時,可能會發生這種情況。

      e)403 —您嘗試訪問的資源被禁止—您沒有正確的許可權檢視它。

      f)404 -在伺服器上找不到您嘗試訪問的資源。

      現在http://api.open-notify.org/iss-pass,根據API文件,向不存在的端點發出GET請求。

      擊中正確的終點

      iss-pass不是有效的端點,因此我們得到了一個404狀態碼作為相應。.json正如API文件所述,我們忘記在最後新增。

      現在,我們將向發出GET請求http://api.open-notify.org/iss-pass.json。

      查詢引數

      您將在上一個示例中看到,我們得到了一個400狀態碼,表示請求錯誤。如果您檢視OpenNotify API的文件,我們會發現ISS Pass端點需要兩個引數。

      當ISS下次透過地球上的給定位置時,將返回ISS Pass端點。為了對此進行計算,我們需要將位置的座標傳遞給API。為此,我們傳遞了兩個引數-緯度和經度。

      為此,我們可以在params請求中新增可選的關鍵字引數。在這種情況下,我們需要傳遞兩個引數:

      1)lat —我們想要的位置的緯度。

      2)lon —我們想要的位置的經度。

      我們可以使用這些引數製作字典,然後將它們傳遞給requests.get函式。

      我們還可以透過將查詢引數新增到url中來直接做同樣的事情,如下所示:http://api.open-notify.org/iss-pass.json?lat=40.71&lon=-74。

      將引數設定為字典幾乎總是可取的,因為requests它可以處理一些事情,例如正確設定查詢引數的格式。

      我們將使用紐約市的座標進行請求,然後檢視得到的答覆。

      b"{n "message": "success", n "request": {n "altitude": 100, n "datetime": 1441417753, n "latitude": 40.71, n "longitude": -74.0, n "passes": 5n }, n "response": [n {n "duration": 330, n "risetime": 1441445639n }, n {n "duration": 629, n "risetime": 1441451226n }, n {n "duration": 606, n "risetime": 1441457027n }, n {n "duration": 542, n "risetime": 1441462894n }, n {n "duration": 565, n "risetime": 1441468731n }n ]n}"

      b"{n "message": "success", n "request": {n "altitude": 100, n "datetime": 1441417753, n "latitude": 40.71, n "longitude": -74.0, n "passes": 5n }, n "response": [n {n "duration": 329, n "risetime": 1441445639n }, n {n "duration": 629, n "risetime": 1441451226n }, n {n "duration": 606, n "risetime": 1441457027n }, n {n "duration": 542, n "risetime": 1441462894n }, n {n "duration": 565, n "risetime": 1441468731n }n ]n}"

      使用JSON資料

      您可能已經注意到,響應的內容之前是a string(儘管它顯示為bytes物件,但是我們可以使用輕鬆地將內容轉換為字串response.content.decode("utf-8"))。

      字串是我們將資訊來回傳遞給API的方式,但是很難從字串中獲取我們想要的資訊。我們如何知道如何解碼返回的字串並在大資料分析Python中使用它?我們如何altitude從字串響應中找出ISS的含義?

      幸運的是,有一種名為JavaScript Object Notation(JSON)的格式。JSON是一種將列表和字典之類的資料結構編碼為字串的方法,以確保它們易於被機器讀取。JSON是將資料來回傳遞給API的主要格式,大多數API伺服器將以JSON格式傳送其響應。

      json套件隨附大資料分析Python強大的JSON支援。該json軟體包是標準庫的一部分,因此我們無需安裝任何程式即可使用它。我們既可以將列表和字典轉換為JSON,也可以將字串轉換為列表和字典。就我們的ISS Pass資料而言,它是一個字典,編碼為JSON格式的字串。

      json庫有兩種主要方法:

      1)dumps —接收一個大資料分析Python物件,並將其轉換為字串。

      2)loads —接收JSON字串,並將其轉換為大資料分析Python物件。

      從API請求獲取JSON

      透過使用.json()響應上的方法,您可以將響應的內容作為大資料分析Python物件獲取。

      {"response": [{"risetime": 1441456672, "duration": 369}, {"risetime": 1441462284, "duration": 626}, {"risetime": 1441468104, "duration": 581}, {"risetime": 1441474000, "duration": 482}, {"risetime": 1441479853, "duration": 509}], "message": "success", "request": {"latitude": 37.78, "passes": 5, "longitude": -122.41, "altitude": 100, "datetime": 1441417753}}

      內容型別

      伺服器不僅會在生成響應時傳送狀態碼和資料。它還發送包含有關如何生成資料以及如何對其進行解碼的資訊的元資料。這儲存在響應頭中。在大資料分析Python中,我們可以使用headers響應物件的屬性來訪問它。

      標頭將顯示為字典。在標題中,content-type是目前最重要的鍵。它告訴我們響應的格式以及如何對其進行解碼。大資料分析Python API入門教程https://www.aaa-cg.com.cn/data/2308.html對於OpenNotify API,格式為JSON,這就是為什麼我們可以json更早地使用包對其進行解碼的原因。

      尋找太空中的人數

      OpenNotify還有一個API端點astros.json。它告訴你當前有多少人在太空中。相應的格式可以在這裡找到。

      9

      {"number": 9, "people": [{"name": "Gennady Padalka", "craft": "ISS"}, {"name": "Mikhail Kornienko", "craft": "ISS"}, {"name": "Scott Kelly", "craft": "ISS"}, {"name": "Oleg Kononenko", "craft": "ISS"}, {"name": "Kimiya Yui", "craft": "ISS"}, {"name": "Kjell Lindgren", "craft": "ISS"}, {"name": "Sergey Volkov", "craft": "ISS"}, {"name": "Andreas Mogensen", "craft": "ISS"}, {"name": "Aidyn Aimbetov", "craft": "ISS"}], "message": "success"}

      大資料分析Python API資料科學教程:後續步驟

      建議的其他後續步驟是閱讀請求文件,並使用Reddit API。有一個名為PRAW 的程式包,它使在大資料分析Python中使用Reddit API更加容易,但是建議requests首先使用它來了解一切的工作原理。

    https://www.toutiao.com/i6832146415016215043/

  • 中秋節和大豐收的關聯?
  • 都說“春雨貴如油”,這一段時間雨水多,對小麥生長是好是壞?