更改數(shù)據(jù)類型_第1頁(yè)
更改數(shù)據(jù)類型_第2頁(yè)
更改數(shù)據(jù)類型_第3頁(yè)
更改數(shù)據(jù)類型_第4頁(yè)
更改數(shù)據(jù)類型_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

更改數(shù)據(jù)類型教師:亢華愛北京信息職業(yè)技術(shù)學(xué)院商務(wù)數(shù)據(jù)分析與應(yīng)用專業(yè)教學(xué)資源庫(kù)目錄Contents明確指定數(shù)據(jù)的類型概述通過astype()方法強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的類型通過to_numeric()函數(shù)轉(zhuǎn)換數(shù)據(jù)類型1PART概述概述在處理數(shù)據(jù)時(shí),可能會(huì)遇到數(shù)據(jù)類型不一致的問題。例如,通過爬蟲采集到的數(shù)據(jù)都是整型的數(shù)據(jù),在使用數(shù)據(jù)時(shí)希望保留兩位小數(shù)點(diǎn),這時(shí)就需要將數(shù)據(jù)的類型轉(zhuǎn)換成浮點(diǎn)型。針對(duì)這種問題,既可以在創(chuàng)建Pandas對(duì)象時(shí)明確指定數(shù)據(jù)的類型,也可以使用astype()方法和to_numberic()函數(shù)進(jìn)行轉(zhuǎn)換2PART明確指定數(shù)據(jù)的類型創(chuàng)建Pandas數(shù)據(jù)對(duì)象時(shí),如果沒有明確地指岀數(shù)據(jù)的類型,則可以根據(jù)傳入的數(shù)據(jù)推斷出來(lái),并且通過dtypes屬性進(jìn)行查看。In[19]:importpandasaspd

df=pd.DataFrame({'A':['5','6','7'],'B':['3','2','1']})df.dtypes#查看數(shù)據(jù)的類型Out[19]:AobjectBobjectdtype:object明確指定數(shù)據(jù)的類型創(chuàng)建一個(gè)Series對(duì)象,并查看其數(shù)據(jù)的類型,具體代碼如下還可以在創(chuàng)建Pandas對(duì)象時(shí)明確地指定數(shù)據(jù)的類型,即在使用構(gòu)造方法創(chuàng)建對(duì)象時(shí),使用dtype參數(shù)指定數(shù)據(jù)的類型,示例代碼如下In[20]:importpandasaspd#創(chuàng)建DataFrame對(duì)象,數(shù)據(jù)的類型為intdf=pd.DataFrame({'A':['5','6','7'],'B':['3','2','1']},

dtype='int')df.dtypesOut[20]:A int32B int32dtype:object明確指定數(shù)據(jù)的類型3PART通過astype()方法強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的類型通過astype()方法強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的類型參數(shù)含義通過astype()方法可以強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的類型,其語(yǔ)法格式如下:astype(dtype,copy=True,errors='raise',**kwargs)(1)dtype:表示數(shù)據(jù)的類型。(2)copy:是否建立副本,默認(rèn)為True。(3)errors:錯(cuò)誤采取的處理方式,可以取值為raise或ignore,默認(rèn)為raiseo其中,raise表示允許引發(fā)異常,ignore表示抑制異常。首先,創(chuàng)建一個(gè)DataFrame對(duì)象,并且使用dtypes屬性查看數(shù)據(jù)的類型,具體代碼如下In[21]:importpandasaspddf=pd.DataFrame({'A':['1','1.2','4.2'],'B':['-9','70','88'],'C':['x','5.0','0']})df.dtypesOut[21]:A objectB objectC objectdtype:

object從輸出結(jié)果看出,所有數(shù)據(jù)的類型均為object通過astype()方法強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的類型然后,將B列數(shù)據(jù)的類型轉(zhuǎn)換為int類型,實(shí)現(xiàn)對(duì)指定列的數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,示例代碼如下In[22]:df['B'].astype(dtype='int') #強(qiáng)制轉(zhuǎn)換為int類型Out[22]:

0

-9170288Name:B,dtype:int32需要注意的是,這里并沒有將所有列進(jìn)行類型轉(zhuǎn)換,主要是因?yàn)镃列中有非數(shù)字類型的字符,無(wú)法將其轉(zhuǎn)換為int類型,若強(qiáng)制轉(zhuǎn)換會(huì)出現(xiàn)ValueError異常通過astype()方法強(qiáng)制轉(zhuǎn)換數(shù)據(jù)的類型4PART通過to_numeric()函數(shù)轉(zhuǎn)換數(shù)據(jù)類型參數(shù)含義to_numeric()函數(shù)可以將傳入的參數(shù)轉(zhuǎn)換為數(shù)值類型,其語(yǔ)法格式如下pandas.to_numeric(arg,errors='raise',downcast=None)(1)arg:表示要轉(zhuǎn)換的數(shù)據(jù),可以是list、tuple、Series。(2)errors:錯(cuò)誤采取的處理方式。astype()方法雖然可以轉(zhuǎn)換數(shù)據(jù)的類型,但是它存在著一些局限性,只要待轉(zhuǎn)換的數(shù)據(jù)中存在數(shù)字以外的字符,在使用astype()方法進(jìn)行類型轉(zhuǎn)換時(shí)就會(huì)出現(xiàn)錯(cuò)誤,而to_numericO函數(shù)的出現(xiàn)正好解決了這個(gè)問題通過to_numeric()函數(shù)轉(zhuǎn)換數(shù)據(jù)類型接下來(lái),通過一個(gè)示例來(lái)演示如何將只包含數(shù)字的字符串轉(zhuǎn)換為數(shù)字類型,具體代碼如下In[23]:importpandasaspdser_obj=pd.Series(['1','1.2','4.2'])ser_objOut[23]:0 11 1.22 4.2dtype:objectIn[24]:#轉(zhuǎn)換object類型為float類型pd.to_numeric(ser_obj,errors='raise')Out[24]:0 1.01 1.22 4.2dtype:float64注意:to_numeric()函數(shù)是不能直接操作D

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論