日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

怎么用numpy读取excel的数据画三维图_python初学者,如何快速匹配excel任务

發(fā)布時間:2025/4/16 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么用numpy读取excel的数据画三维图_python初学者,如何快速匹配excel任务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一次在知乎寫長文的python辦公類文章,有點小緊張~~

自己是在給女朋友做東西的時候想到,可以分享一些python編程的簡單知識,幫助大家提高工作的效率。然后就有了寫文章出來的沖動~還開了一個公眾號~~

如果大家有什么想法,歡迎大家交流分享。如果有建議的話,也歡迎大家提出來,我一定會吸取意見,嘿嘿~

問題:

玩具制造廠總廠有一張excel表,記錄了每種零件的進(jìn)廠時間及代號,你所在的分廠的excel表只記錄了每種玩具對應(yīng)的零件的代號。

現(xiàn)在你的上司想要你根據(jù)總廠的excel表,補充分廠零件的進(jìn)廠時間。

總廠和分廠的數(shù)據(jù)如下所示:

問題分析:

可以發(fā)現(xiàn),分廠的零件代號在總廠中并不是唯一的,對一種零件來說,它的進(jìn)廠時間可能存在多個。

這個例子并不難,大家都知道怎么做,但是沒有人會喜歡做,畢竟這種繁瑣的工作最讓人煩躁。

問題解決:

在寫程序之前,先導(dǎo)入pandas和numpy庫。pandas庫用來讀取和保存excel文件,numpy庫用來處理數(shù)據(jù)。

import pandas as pd import numpy as np

import是用來進(jìn)行庫的導(dǎo)入,pd和np分別是這兩個庫的簡稱。

1、 將excel表格中的數(shù)據(jù)讀取到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中讀取的是總廠的數(shù)據(jù),data2是分廠。

這兩行代碼的作用是從excel中讀取數(shù)據(jù),括號中有兩個參數(shù)。

第一個參數(shù)就是excel的文件名(全路徑名)。按住shift+鼠標(biāo)右擊文件,在彈出的菜單中選擇“復(fù)制為路徑”,要記得把反斜杠改為斜杠。

第二個參數(shù)sheet_name指在excel文件中需要讀取的sheet區(qū)域名字。

sheet_name后面既可以接excel中sheet的名字,也可以接sheet的序號,例如:sheet_name="your_sheet_name",或者sheet_name=0。

劃重點,在python中,計數(shù)是從0開始的,也就是說,0代表excel中第一個sheet表,1代表第二個sheet表,依次類推。

運行結(jié)果如下所示:

圖中展示的數(shù)據(jù)正是使用pandas庫得到的數(shù)據(jù),它的類型是DataFrame,類似于excel表格。NaN是python對空字符的表示方法,表示這里沒有數(shù)據(jù)。

2、 寫程序來制定處理規(guī)則,讓數(shù)據(jù)按照程序流動,得到想要的結(jié)果。

data1 = np.array(data1, dtype=str) data2 = np.array(data2, dtype=str)

注:這兩行代碼是將數(shù)據(jù)格式由DataFrame轉(zhuǎn)化為numpy庫中的array數(shù)組,方便對它做進(jìn)一步的操作。Pandas庫適合對數(shù)據(jù)進(jìn)行查詢、篩選,numpy庫則適合對數(shù)據(jù)進(jìn)行處理。

運行結(jié)果如下所示:

觀察轉(zhuǎn)化后的數(shù)據(jù)發(fā)現(xiàn),數(shù)據(jù)都被單引號引起來,形式變成了字符串,這是因為字符串方便進(jìn)行查詢。Data2的數(shù)據(jù)在被轉(zhuǎn)化為字符串?dāng)?shù)組后,多了“.0”,需要在后面的操作中去掉。

length1 = data1.shape[0] length2 = len(data2)

注:這兩行代碼用來得到兩個數(shù)組的行數(shù)。兩行代碼采用了兩種不同的方式,都可以得到數(shù)組的行數(shù),大家可以自由選擇其中一種。

第一種是數(shù)據(jù)的shape方法,shape[0]會返回數(shù)組的行數(shù),shape[1]會返回數(shù)組的列數(shù)。

第二種的len()方法是python的一個通用的自帶方法,可以求出數(shù)組的長度。運行結(jié)果如下所示:

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]

注:構(gòu)建兩個for循環(huán)對兩個數(shù)組進(jìn)行遍歷,若檢索到分廠的零件代號在總廠的零件代號中,那么將相應(yīng)的進(jìn)廠時間放在分廠對應(yīng)的進(jìn)廠時間中。

strip函數(shù)是用來在字符串的首尾去掉一些不需要的字符,像空格。

將分廠的數(shù)據(jù)轉(zhuǎn)成字符串后,分廠數(shù)據(jù)比原始數(shù)據(jù)多了“.0”,字符串中的“1001”和“1001.0”是不一樣的,這會影響與總廠數(shù)據(jù)的匹配,因此使用strip函數(shù)去掉分廠數(shù)據(jù)中的“.0”。

in是判斷分廠的零件代號是否在總廠零件代號中的方法。“rn”表示回到行首并換行,用于定義數(shù)據(jù)的顯示格式。

運行完后得到的分廠數(shù)據(jù)如下:

3、 把得到的處理結(jié)果,保存到result.xlsx中

data2

注:這里的兩行代碼用來保存數(shù)據(jù),括號中填寫自己想要保存數(shù)據(jù)的位置(全路徑)。

到此,我們使用jupyter notebook,實現(xiàn)了我們的目標(biāo)。

最后,把我們寫好的程序貼圖附在這里。

-----------------------------------------

到這里,我們的第一個excel文件操作任務(wù)就告一段落了。我的公眾號是 數(shù)算天下的紅.

如果你想了解更多關(guān)于python自動化辦公的知識,歡迎關(guān)注我的公眾號啦~,小數(shù)和小紅等你一起邁步哦。

總結(jié)

以上是生活随笔為你收集整理的怎么用numpy读取excel的数据画三维图_python初学者,如何快速匹配excel任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。