Pandas 類型轉(zhuǎn)換astype()的實(shí)現(xiàn)
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ù)字的字符串是不能通過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)換為int32 df.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)的文章就介紹到這了,更多相關(guān)Pandas 類型轉(zhuǎn)換astype()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
只需要100行Python代碼就可以實(shí)現(xiàn)的貪吃蛇小游戲
貪吃蛇小游戲相信80、90后小時(shí)候肯定都玩過,那么你知道如果通過Python來實(shí)現(xiàn)嗎?今天就來教大家,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05Python while、for、生成器、列表推導(dǎo)等語句的執(zhí)行效率測(cè)試
這篇文章主要介紹了Python while、for、生成器、列表推導(dǎo)等語句的執(zhí)行效率測(cè)試,本文分別用兩段程序測(cè)算出了各語句的執(zhí)行效率,然后總結(jié)了什么情況下使用什么語句優(yōu)先使用的語句等,需要的朋友可以參考下2015-06-06基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù)
這篇文章主要介紹了基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11在Pytorch中簡(jiǎn)單使用tensorboard
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識(shí),文章圍繞著Pytorch使用tensorboard展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06