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)文章
python實(shí)現(xiàn)最大子序和(分治+動(dòng)態(tài)規(guī)劃)
這篇文章主要介紹了python實(shí)現(xiàn)最大子序和(分治+動(dòng)態(tài)規(guī)劃),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
使用python實(shí)現(xiàn)3D聚類圖示例代碼
這篇文章主要介紹了使用python實(shí)現(xiàn)3D聚類圖效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08
PyQt5+serial模塊實(shí)現(xiàn)一個(gè)串口小工具
這篇文章主要為大家詳細(xì)介紹了如何利用PyQt5和serial模塊實(shí)現(xiàn)一個(gè)簡單的串口小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01
Pytorch distributed 多卡并行載入模型操作
這篇文章主要介紹了Pytorch distributed 多卡并行載入模型操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
pandas 對(duì)series和dataframe進(jìn)行排序的實(shí)例
今天小編就為大家分享一篇pandas 對(duì)series和dataframe進(jìn)行排序的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
python報(bào)錯(cuò)TypeError: ‘NoneType‘ object is not subscriptable的解決
這篇文章主要給大家介紹了關(guān)于python報(bào)錯(cuò)TypeError: ‘NoneType‘ object is not subscriptable的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
django第一個(gè)項(xiàng)目127.0.0.1:8000不能訪問的解決方案詳析
django項(xiàng)目服務(wù)啟動(dòng)后無法通過127.0.0.1訪問,下面這篇文章主要給大家介紹了關(guān)于django第一個(gè)項(xiàng)目127.0.0.1:8000不能訪問的解決方案,需要的朋友可以參考下2022-10-10
Jupyter notebook 更改文件打開的默認(rèn)路徑操作
這篇文章主要介紹了Jupyter notebook 更改文件打開的默認(rèn)路徑操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-05-05

