Python中和Pandas中數(shù)據(jù)類型對(duì)應(yīng)關(guān)系如下:
- 果數(shù)據(jù)是純凈得數(shù)據(jù),可以轉(zhuǎn)化為數(shù)字
- astype基本也就是兩種用作,數(shù)字轉(zhuǎn)化為單純字符串,單純數(shù)字得字符串轉(zhuǎn)化為數(shù)字,含有其他得非數(shù)字得字符串是不能通過(guò)astype進(jìn)行轉(zhuǎn)化得。
- 需要引入其他得方法進(jìn)行轉(zhuǎn)化,也就有了下面得自定義函數(shù)方法
astype()是最常見也是最通用得數(shù)據(jù)類型轉(zhuǎn)換方法
import pandas as pd df = pd.DataFrame([['liver','E',89,21,24,64], ['Arry','C',36,37,37,57], ['Ack','A',57,60,18,84], ['Eorge','C',93,96,71,78], ['Oah','D',65,49,61,86] ], columns = ['name','team','Q1','Q2','Q3','Q4']) res = df.dtypes df.Q1.astype('int32').dtypes # dtype('int32')df.astype({'Q1':'int32','Q2':'int32'}).dtypes
結(jié)果展示
df
res
擴(kuò)展
# 以下是一些使用示例:df.index.astype('int64') # 索引類型轉(zhuǎn)換df.astype('int32') # 所有數(shù)據(jù)轉(zhuǎn)換為int32df.astype({'col1':'int32'}) # 指定字段轉(zhuǎn)指定類型s.astype('int64')s.astype('int64',copy = False) # 不與原數(shù)據(jù)關(guān)聯(lián)df['name'].astype('object')data['Q4'].astype('float')s.astype('datatime64[ns]') # 轉(zhuǎn)為時(shí)間類型data['狀態(tài)'].astype('bool')
數(shù)據(jù)類型
df.dtypes會(huì)返回每個(gè)字段得數(shù)據(jù)類型及DataFrame整體得類型
如果是Series,需要用s.dtype
import pandas as pd df = pd.DataFrame([['liver','E',89,21,24,64], ['Arry','C',36,37,37,57], ['Ack','A',57,60,18,84], ['Eorge','C',93,96,71,78], ['Oah','D',65,49,61,86] ], columns = ['name','team','Q1','Q2','Q3','Q4'])df.dtypes s = pd.Series(['One','Two','Three'])s.dtype
結(jié)果展示
df
s
當(dāng)數(shù)據(jù)得格式不具備轉(zhuǎn)換為目標(biāo)類型得條件時(shí),需要先對(duì)數(shù)據(jù)進(jìn)行處理
例如“89.3%”是一個(gè)字符串,要轉(zhuǎn)換為數(shù)字,要先去掉百分號(hào):
# 將"89.3%"這樣得文本轉(zhuǎn)為浮點(diǎn)數(shù)data.rate.apply(lambda x:x.replace('%','')).astype('float')/100
加載數(shù)據(jù)時(shí)可以指定數(shù)據(jù)各列得類型:
import pandas as pd # 對(duì)所有字段指定統(tǒng)一類型df = pd.DataFrame(data, dtype = 'float32')# 對(duì)每個(gè)字段分別指定df = pd.read_excel(data, dtype = {'team':'string','Q1':'int32'})
到此這篇關(guān)于Pandas 類型轉(zhuǎn)換astype()得實(shí)現(xiàn)得內(nèi)容就介紹到這了,更多相關(guān)Pandas 類型轉(zhuǎn)換astype()內(nèi)容請(qǐng)搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關(guān)內(nèi)容希望大家以后多多支持之家!
聲明:所有內(nèi)容來(lái)自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。