怎么用numpy读取excel的数据画三维图_python初学者,如何快速匹配excel任务
第一次在知乎寫長文的python辦公類文章,有點小緊張~~
自己是在給女朋友做東西的時候想到,可以分享一些python編程的簡單知識,幫助大家提高工作的效率。然后就有了寫文章出來的沖動~還開了一個公眾號~~
如果大家有什么想法,歡迎大家交流分享。如果有建議的話,也歡迎大家提出來,我一定會吸取意見,嘿嘿~
問題:
玩具制造廠總廠有一張excel表,記錄了每種零件的進廠時間及代號,你所在的分廠的excel表只記錄了每種玩具對應的零件的代號。
現在你的上司想要你根據總廠的excel表,補充分廠零件的進廠時間。
總廠和分廠的數據如下所示:
問題分析:
可以發現,分廠的零件代號在總廠中并不是唯一的,對一種零件來說,它的進廠時間可能存在多個。
這個例子并不難,大家都知道怎么做,但是沒有人會喜歡做,畢竟這種繁瑣的工作最讓人煩躁。
問題解決:
在寫程序之前,先導入pandas和numpy庫。pandas庫用來讀取和保存excel文件,numpy庫用來處理數據。
import pandas as pd import numpy as npimport是用來進行庫的導入,pd和np分別是這兩個庫的簡稱。
1、 將excel表格中的數據讀取到python中
data1 = pd.read_excel('E:/untitled/excel/test.xlsx', sheet_name=0) data2 = pd.read_excel('E:/untitled/excel/test.xlsx', sheet_name=1)注:data1中讀取的是總廠的數據,data2是分廠。
這兩行代碼的作用是從excel中讀取數據,括號中有兩個參數。
第一個參數就是excel的文件名(全路徑名)。按住shift+鼠標右擊文件,在彈出的菜單中選擇“復制為路徑”,要記得把反斜杠改為斜杠。
第二個參數sheet_name指在excel文件中需要讀取的sheet區域名字。
sheet_name后面既可以接excel中sheet的名字,也可以接sheet的序號,例如:sheet_name="your_sheet_name",或者sheet_name=0。
劃重點,在python中,計數是從0開始的,也就是說,0代表excel中第一個sheet表,1代表第二個sheet表,依次類推。
運行結果如下所示:
圖中展示的數據正是使用pandas庫得到的數據,它的類型是DataFrame,類似于excel表格。NaN是python對空字符的表示方法,表示這里沒有數據。
2、 寫程序來制定處理規則,讓數據按照程序流動,得到想要的結果。
data1 = np.array(data1, dtype=str) data2 = np.array(data2, dtype=str)注:這兩行代碼是將數據格式由DataFrame轉化為numpy庫中的array數組,方便對它做進一步的操作。Pandas庫適合對數據進行查詢、篩選,numpy庫則適合對數據進行處理。
運行結果如下所示:
觀察轉化后的數據發現,數據都被單引號引起來,形式變成了字符串,這是因為字符串方便進行查詢。Data2的數據在被轉化為字符串數組后,多了“.0”,需要在后面的操作中去掉。
length1 = data1.shape[0] length2 = len(data2)注:這兩行代碼用來得到兩個數組的行數。兩行代碼采用了兩種不同的方式,都可以得到數組的行數,大家可以自由選擇其中一種。
第一種是數據的shape方法,shape[0]會返回數組的行數,shape[1]會返回數組的列數。
第二種的len()方法是python的一個通用的自帶方法,可以求出數組的長度。運行結果如下所示:
for i in range(length2):for j in range(length1):if data2[i, 0].strip(".0") in data1[j,1]:data2[i, 1] = data2[i, 1] + " " + data1[j, 0]注:構建兩個for循環對兩個數組進行遍歷,若檢索到分廠的零件代號在總廠的零件代號中,那么將相應的進廠時間放在分廠對應的進廠時間中。
strip函數是用來在字符串的首尾去掉一些不需要的字符,像空格。
將分廠的數據轉成字符串后,分廠數據比原始數據多了“.0”,字符串中的“1001”和“1001.0”是不一樣的,這會影響與總廠數據的匹配,因此使用strip函數去掉分廠數據中的“.0”。
in是判斷分廠的零件代號是否在總廠零件代號中的方法。“rn”表示回到行首并換行,用于定義數據的顯示格式。
運行完后得到的分廠數據如下:
3、 把得到的處理結果,保存到result.xlsx中
data2注:這里的兩行代碼用來保存數據,括號中填寫自己想要保存數據的位置(全路徑)。
到此,我們使用jupyter notebook,實現了我們的目標。
最后,把我們寫好的程序貼圖附在這里。
-----------------------------------------
到這里,我們的第一個excel文件操作任務就告一段落了。我的公眾號是 數算天下的紅.
如果你想了解更多關于python自動化辦公的知識,歡迎關注我的公眾號啦~,小數和小紅等你一起邁步哦。
總結
以上是生活随笔為你收集整理的怎么用numpy读取excel的数据画三维图_python初学者,如何快速匹配excel任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rancher k8s docker 关
- 下一篇: anaconda怎么运行python程序