国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python和R語(yǔ)言在農(nóng)機(jī)管理數(shù)據(jù)中的應(yīng)用

2021-11-30 10:39:12昌吉市濱湖鎮(zhèn)農(nóng)業(yè)發(fā)展服務(wù)中心范治璇楊樹(shù)楠余桂玲
河北農(nóng)機(jī) 2021年6期
關(guān)鍵詞:審驗(yàn)鍵值姓名

昌吉市濱湖鎮(zhèn)農(nóng)(牧)業(yè)發(fā)展服務(wù)中心 范治璇 楊樹(shù)楠 余桂玲

Python和R作為一種高效的數(shù)據(jù)整合工具,順應(yīng)了各類(lèi)管理數(shù)據(jù)處理自動(dòng)化快速發(fā)展需求。這類(lèi)數(shù)據(jù)處理軟件要求使用者具備一定的C或C++計(jì)算機(jī)語(yǔ)言基礎(chǔ)。對(duì)于新時(shí)代農(nóng)機(jī)管理人員而言,大多具備機(jī)械電子類(lèi)教育背景,一般對(duì)C類(lèi)計(jì)算機(jī)語(yǔ)言比較熟悉,在此基礎(chǔ)上開(kāi)展Python和R的應(yīng)用已經(jīng)具備了人員素質(zhì)條件要素。Python和R語(yǔ)言環(huán)境本身具有眾多的擴(kuò)展庫(kù),其處理海量數(shù)據(jù)能力的特點(diǎn)十分適合工程技術(shù)、科研人員處理數(shù)據(jù)、制作圖表,甚至開(kāi)發(fā)科學(xué)計(jì)算應(yīng)用程序。在數(shù)據(jù)處理中應(yīng)用該程序可以有效地提高工作效率?,F(xiàn)就對(duì)Python和R在農(nóng)機(jī)數(shù)據(jù)管理中的使用方法做如下介紹。

1 Python的特點(diǎn)

Python語(yǔ)言結(jié)構(gòu)比較簡(jiǎn)單,關(guān)鍵字相對(duì)其他語(yǔ)言少很多,而且語(yǔ)法定義明確,對(duì)初學(xué)者更容易掌握,學(xué)習(xí)過(guò)程較為友好。由于Python代碼定義更清晰,使其便于該軟件使用者閱讀理解。

Python的開(kāi)放源代碼特性及容易維護(hù)是它可以大范圍使用的關(guān)鍵。Python有廣泛的跨平臺(tái)的標(biāo)準(zhǔn)庫(kù),兼容UNIX、Windows和Macintosh等主流操作系統(tǒng),能移植到多重平臺(tái)。對(duì)于使用者個(gè)人不愿意開(kāi)放的一些算法,可以先使用C或C++完成算法部分的程序,然后在Python程序中調(diào)用。在互動(dòng)模式支持下,可以從終端輸入執(zhí)行代碼獲得結(jié)果以進(jìn)行互動(dòng)測(cè)試和代碼片段的調(diào)試。

2 Python在農(nóng)機(jī)管理數(shù)據(jù)處理中的使用方法

2.1 數(shù)據(jù)的橫向合并

作為一個(gè)功能完善、強(qiáng)大的語(yǔ)言python的pandas庫(kù)中的merge()支持各種內(nèi)外連接。工作表數(shù)據(jù)合并方式包括左連接、右連接、內(nèi)連接、全連接。在處理兩個(gè)表格數(shù)據(jù)時(shí),左連接是以左邊的表格為基準(zhǔn)表把右邊的數(shù)據(jù)合并過(guò)來(lái),右連接是以右邊的表格為基準(zhǔn)表把左邊的數(shù)據(jù)合并過(guò)來(lái),內(nèi)連接則是把左邊表格和右邊表格中同樣的數(shù)據(jù)類(lèi)型進(jìn)行合并,全連接則是把左邊和右邊表格全部數(shù)據(jù)都進(jìn)行合并。合并時(shí)確定一個(gè)鍵值作為變量進(jìn)行合并時(shí)的參照。

2.1.1 基本的合并方法。

合并是基于Pandas庫(kù)運(yùn)行,因此先應(yīng)將所需處理的數(shù)據(jù)導(dǎo)入pandas庫(kù)再進(jìn)行下一步操作,如有兩張工作表“D1農(nóng)機(jī)購(gòu)置補(bǔ)貼資金發(fā)放明細(xì)表2019”“D2農(nóng)機(jī)購(gòu)置補(bǔ)貼資金發(fā)放明細(xì)表2020”,先要導(dǎo)入庫(kù):importpandasaspd,然后才能將這兩個(gè)表合并起來(lái),對(duì)于表中“姓名-機(jī)型-補(bǔ)貼值”項(xiàng),鍵值為姓名,基本語(yǔ)句為:merge(D1,D2,on='姓名'),如不指定,則默認(rèn)內(nèi)連接(inner)。左連接時(shí),基本語(yǔ)句為:merge(D1,D2,on='姓名',how='left')。右連接時(shí),基本語(yǔ)句為:merge(D1,D2,on='姓名',how='right')。全合并時(shí)基本語(yǔ)句為:merge(D1,D2,on='姓名',how='outer')。以上的幾種合并,都是按照表中姓名來(lái)合并的,兩個(gè)表姓名一樣,即將這條數(shù)據(jù)合并,這個(gè)姓名被稱(chēng)為鍵值,作為一個(gè)變量被用來(lái)作為合并參照。

2.1.2 特殊情況合并方法

對(duì)于鍵值名不一樣的合并方法,如上例D1和D2表格中都有一個(gè)變量“姓名”,假如這兩個(gè)表的鍵值的名字分別為“機(jī)型”“生產(chǎn)廠家”,這種情況只要用left_on=和right_on=分別指定兩個(gè)鍵的名字即可,語(yǔ)句為:merge(D1,D2,left_on='機(jī)型',right_on='生產(chǎn)廠家')。如果上例表格D1的鍵值是變量,D2的鍵值是一個(gè)索引,合并時(shí)使用?left_index=True或?right_index=True語(yǔ)句,來(lái)聲明某個(gè)數(shù)據(jù)的索引應(yīng)該被當(dāng)作鍵值,基本語(yǔ)句為:merge(D1,D2,left_on='姓名',right_index=True)。

對(duì)于有一樣變量名的兩個(gè)數(shù)據(jù)列的合并方法。如兩個(gè)數(shù)據(jù)表有本區(qū)域數(shù)名農(nóng)機(jī)登記所有人近兩年的審驗(yàn)數(shù)據(jù),數(shù)據(jù)名為“2019農(nóng)機(jī)審驗(yàn)記錄表”“2020農(nóng)機(jī)審驗(yàn)記錄表”。生成語(yǔ)句為:2019農(nóng)機(jī)審驗(yàn)記錄表=pd.DataFrame({'姓名':[張非,李俊,王欣,趙龍],'審驗(yàn)情況':[已審驗(yàn),已審驗(yàn),已審驗(yàn),已審驗(yàn)]}),生成語(yǔ)句為:2020農(nóng)機(jī)審驗(yàn)記錄表=pd.DataFrame({'姓名':[張非,李俊,王欣,趙龍],'審驗(yàn)情況':[已審驗(yàn),未審驗(yàn),未審驗(yàn),已審驗(yàn)]})。運(yùn)行后,兩個(gè)'審驗(yàn)情況'會(huì)自動(dòng)打上后綴,一個(gè)是_x,一個(gè)是_y,使用者也可以自己加后綴,使用suffixes=()?選項(xiàng)。比如將后綴變?yōu)椋篲2019和_2020,基本語(yǔ)句為:merge(2019農(nóng)機(jī)審驗(yàn)記錄表,2020農(nóng)機(jī)審驗(yàn)記錄表,on='姓名',how='left',suffixes=('_2019','_2020’))

2.2 數(shù)據(jù)的縱向合并

縱向合并也稱(chēng)為堆疊。比如,把上述農(nóng)機(jī)購(gòu)置補(bǔ)貼資金發(fā)放明細(xì)表分成兩個(gè)部分。堆疊的基本語(yǔ)句為:concat([D1,D2]),堆疊起來(lái)的數(shù)據(jù),可以用?keys=[,]?標(biāo)記出哪部分來(lái)自D1,哪部分來(lái)自D2,基本語(yǔ)句為:concat([D1,D2],keys=['D1','D2'])。另外,還存在直接將兩個(gè)數(shù)據(jù)橫向堆在一起的橫向堆疊,其與橫向合并的區(qū)別就是指定了axis=1。

2.3 文本數(shù)據(jù)文件導(dǎo)入python的方法

文本數(shù)據(jù)文件可以直接用pandas中的pd.read_csv('filename')命令直接讀寫(xiě)。應(yīng)注意,如果直接寫(xiě)入,則會(huì)覆蓋源文件,所以在寫(xiě)之前先讀取一下文件,再進(jìn)行寫(xiě)入,則寫(xiě)入的數(shù)據(jù)會(huì)添加到文件末尾而不會(huì)替換掉原先的文件。通過(guò)read()命令讀取文件后,指針會(huì)移到文件的末尾,再寫(xiě)入數(shù)據(jù)就不會(huì)有問(wèn)題了。

3 R語(yǔ)言的特點(diǎn)

R是從S語(yǔ)言演變而來(lái)的一種基于對(duì)象的強(qiáng)類(lèi)型語(yǔ)言,是一種代碼全部公開(kāi)免費(fèi)使用的開(kāi)源軟件,可以在多種操作系統(tǒng)中運(yùn)行,其語(yǔ)法靈活、結(jié)構(gòu)簡(jiǎn)單。

R語(yǔ)言對(duì)象有多種屬性,類(lèi)是其中重要的屬性之一。最基本的類(lèi)包括數(shù)值、邏輯、字符、復(fù)數(shù)、因子,符合類(lèi)包括矩陣、數(shù)組、因子、數(shù)據(jù)框。R可以在編寫(xiě)函數(shù)和腳本后根據(jù)需要輸入命令,進(jìn)行批處理運(yùn)算。特定的分析功能需要用相應(yīng)的R程序包實(shí)現(xiàn)。每個(gè)R程序包包括R函數(shù)、數(shù)據(jù)、幫助文件、描述文件等內(nèi)容。

R語(yǔ)言編程不需要申明變量,使用者編寫(xiě)的程序可直接調(diào)用,編程靈活但區(qū)分字母大小寫(xiě),比如邏輯向量運(yùn)算:TRUE,F(xiàn)ALSE全部大寫(xiě);isTRUE(x)判斷x為T(mén)RUE。通常,一個(gè)命名必須以點(diǎn)(.)或者字母開(kāi)頭,如果以點(diǎn)(.)開(kāi)頭,第二個(gè)字符不允許是數(shù)字,但數(shù)字可以放在中間或結(jié)尾。基本命令有表達(dá)式和賦值兩種形式。命令可以用分號(hào)(;)隔開(kāi)或另起一行。基本命令用大括弧({})放在一起構(gòu)成一個(gè)復(fù)合表達(dá)式。在一行命令中,從#號(hào)開(kāi)始到句子收尾之間的語(yǔ)句是注釋。

4 R在農(nóng)機(jī)數(shù)據(jù)管理中應(yīng)用

4.1 Excel數(shù)據(jù)導(dǎo)入R的方法

第一種方法:使用剪貼板,調(diào)用read.table函數(shù),先選擇農(nóng)機(jī)管理數(shù)據(jù)Excel中的數(shù)據(jù)源,然后進(jìn)行復(fù)制;在Rstudio中輸入腳本read.table("clipboard",header=TRUE),回車(chē)即可。注:header=TRUE,表示首行為標(biāo)題行,若為FALSE則標(biāo)題行也算在正文第一行。

第二種方法:先將農(nóng)機(jī)管理數(shù)據(jù)Excel另存為csv文件,使用read.csv函數(shù)打開(kāi)Excel數(shù)據(jù)源,然后另存為Agrimachine.csv文件;然后在Rstudio中輸入代碼read.csv("C:/Users/Administrator/Desktop/Agrimachine./Agrimachine.csv",header=TRUE),回車(chē)即可。

第三種方法:將農(nóng)機(jī)管理數(shù)據(jù)Excel另存為txt文本文件,然后使用read.table函數(shù);打開(kāi)Excel數(shù)據(jù)源,另存為Agrimachine.txt文件;路徑為【C:UsersAdministratorDesktopAgrimachine】,然后在Rstudio中輸入代碼read.table("C:/Users/Administrator/Desktop/Agrimachine/Agrimachine.txt",header=TRUE),回車(chē)即可。

第四種方法:使用RODBC中的odbcConnectExcel來(lái)創(chuàng)建與Excel的連接,獲取農(nóng)機(jī)管理數(shù)據(jù)Excel中的數(shù)據(jù);由于2007、2010版xlsx格式的Excel文件導(dǎo)入R語(yǔ)言可能會(huì)出現(xiàn)錯(cuò)誤提示,可先調(diào)用xlsx包來(lái)讀取這類(lèi)版本格式的電子表格,因此在從快捷實(shí)用方面考慮還是建議采用前三種方法導(dǎo)入Excel數(shù)據(jù)。

4.2 將數(shù)據(jù)快速讀入R—readr和readxl包

readr包在R中提供了若干函數(shù)以讀取數(shù)據(jù)。通常用R中的read.table函數(shù)來(lái)完成工作表數(shù)據(jù)讀入任務(wù)。readr包提供了許多替代函數(shù),既增加了額外的一些功能也提高了運(yùn)行速度。有測(cè)試顯示,用不同的指令完成相同的任務(wù),read.table用時(shí)50.62秒,而read_table用2.76秒,其原因在于read_table把數(shù)據(jù)當(dāng)作固定格式的文件,并且利用C++快速處理數(shù)據(jù)。因有更高的效率,在一些場(chǎng)合read_table幾乎代替了read.table。

對(duì)于Excel格式的數(shù)據(jù),可以在R軟件安裝readxl包。readxl包提供的函數(shù)可以讀取.xls和.xlsx格式的工作表。其read_execl函數(shù)和readr中的函數(shù)同樣都是基于C++語(yǔ)言庫(kù)的,讀取速度迅速。需強(qiáng)調(diào)的是readxl包沒(méi)有任何的外部依賴(lài),可以不安裝Excel就可以在任意平臺(tái)上用它來(lái)讀取數(shù)據(jù)。

4.3 文本類(lèi)型文件導(dǎo)入R的方法

使用read.table函數(shù)以數(shù)據(jù)框的格式讀入.txt數(shù)據(jù),適合讀取要求每列的數(shù)據(jù)類(lèi)型相同的混合模式的數(shù)據(jù)。通常read.table只需要有文件路徑、URL或連接對(duì)象就可以讀取數(shù)據(jù),而且可以設(shè)置各類(lèi)參數(shù),所以非常方便。

數(shù)據(jù)中含有中文時(shí),導(dǎo)入前應(yīng)設(shè)置中文轉(zhuǎn)碼參數(shù),否則直接導(dǎo)入可能出現(xiàn)不識(shí)別中文情況。字符型數(shù)據(jù)讀入時(shí)會(huì)自動(dòng)轉(zhuǎn)換為因子,因子是R中的變量,由于因子只能取有限的幾個(gè)不同值,將數(shù)據(jù)保存為因子可確保模型函數(shù)能夠正確處理。但是當(dāng)變量作為簡(jiǎn)單字符串使用時(shí)可能出錯(cuò)。防止字符串轉(zhuǎn)換為因子可采用輸入?yún)?shù)、更改系統(tǒng)選項(xiàng)、指定抑制轉(zhuǎn)換的列等方式來(lái)實(shí)現(xiàn)。也可通過(guò)一個(gè)索引向量指定,或者一個(gè)邏輯向量,在需要轉(zhuǎn)換的列取值FALSE,不需要轉(zhuǎn)換的列取值TRUE。

以上,簡(jiǎn)單介紹了Python和R在農(nóng)機(jī)管理過(guò)程中進(jìn)行一些工作表格和文本數(shù)據(jù)處理的應(yīng)用場(chǎng)景,目的只是希望對(duì)廣大農(nóng)業(yè)農(nóng)機(jī)管理人員主動(dòng)掌握這些實(shí)用化數(shù)據(jù)管理工具起到拋磚引玉的推動(dòng)作用,但要想熟練掌握并使用這類(lèi)工具,就必須深入學(xué)習(xí)和參閱相關(guān)教程及文獻(xiàn),不斷在實(shí)踐中完善操作技能,舉一反三,就能極大地提升工作效率,也一定能使農(nóng)機(jī)管理技術(shù)人員順應(yīng)新時(shí)代要求并以全新面貌展現(xiàn)在世人面前。

猜你喜歡
審驗(yàn)鍵值姓名
既有建筑裝修改造工程消防設(shè)計(jì)審驗(yàn)工作
建材與裝飾(2024年8期)2024-03-19 06:52:54
梁潮印箋·姓名章戢孴
非請(qǐng)勿進(jìn) 為注冊(cè)表的重要鍵值上把“鎖”
姓名的『姓』字為什么是『女』旁?
注冊(cè)會(huì)計(jì)師審驗(yàn)認(rèn)繳制注冊(cè)資本實(shí)收情況若干具體問(wèn)題探討
一鍵直達(dá) Windows 10注冊(cè)表編輯高招
廣西開(kāi)展在線審驗(yàn)高級(jí)專(zhuān)業(yè)技術(shù)資格證書(shū)
人事天地(2017年2期)2017-03-01 09:49:38
找朋友
注冊(cè)表值被刪除導(dǎo)致文件夾選項(xiàng)成空白
2008版AA1000標(biāo)準(zhǔn)將重點(diǎn)轉(zhuǎn)向報(bào)告審驗(yàn)
仙游县| 绥阳县| 彰化市| 仪征市| 海淀区| 巫溪县| 建阳市| 托克逊县| 广河县| 齐河县| 霍州市| 封丘县| 牟定县| 和顺县| 广饶县| 定西市| 兴化市| 温州市| 牡丹江市| 宜兴市| 井陉县| 二手房| 元阳县| 宜州市| 马鞍山市| 朔州市| 大英县| 辉南县| 吉木萨尔县| 藁城市| 淮南市| 子长县| 汕头市| 甘孜| 商河县| 紫云| 开原市| 新田县| 陆河县| 汶川县| 丹棱县|