Pandas 類型轉換astype()的實現(xiàn)
Python中和Pandas中數(shù)據(jù)類型對應關系如下:

- 果數(shù)據(jù)是純凈的數(shù)據(jù),可以轉化為數(shù)字
- astype基本也就是兩種用作,數(shù)字轉化為單純字符串,單純數(shù)字的字符串轉化為數(shù)字,含有其他的非數(shù)字的字符串是不能通過astype進行轉化的。
- 需要引入其他的方法進行轉化,也就有了下面的自定義函數(shù)方法
astype()是最常見也是最通用的數(shù)據(jù)類型轉換方法
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結果展示
df

res


擴展
# 以下是一些使用示例:
df.index.astype('int64') # 索引類型轉換
df.astype('int32') # 所有數(shù)據(jù)轉換為int32
df.astype({'col1':'int32'}) # 指定字段轉指定類型
s.astype('int64')
s.astype('int64',copy = False) # 不與原數(shù)據(jù)關聯(lián)
df['name'].astype('object')
data['Q4'].astype('float')
s.astype('datatime64[ns]') # 轉為時間類型
data['狀態(tài)'].astype('bool')數(shù)據(jù)類型
df.dtypes會返回每個字段的數(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結果展示
df


s


當數(shù)據(jù)的格式不具備轉換為目標類型的條件時,需要先對數(shù)據(jù)進行處理
例如“89.3%”是一個字符串,要轉換為數(shù)字,要先去掉百分號:
# 將"89.3%"這樣的文本轉為浮點數(shù)
data.rate.apply(lambda x:x.replace('%','')).astype('float')/100加載數(shù)據(jù)時可以指定數(shù)據(jù)各列的類型:
import pandas as pd
# 對所有字段指定統(tǒng)一類型
df = pd.DataFrame(data, dtype = 'float32')
# 對每個字段分別指定
df = pd.read_excel(data, dtype = {'team':'string','Q1':'int32'})到此這篇關于Pandas 類型轉換astype()的實現(xiàn)的文章就介紹到這了,更多相關Pandas 類型轉換astype()內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python實現(xiàn)最大子序和(分治+動態(tài)規(guī)劃)
這篇文章主要介紹了python實現(xiàn)最大子序和(分治+動態(tài)規(guī)劃),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07
Pytorch distributed 多卡并行載入模型操作
這篇文章主要介紹了Pytorch distributed 多卡并行載入模型操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
pandas 對series和dataframe進行排序的實例
今天小編就為大家分享一篇pandas 對series和dataframe進行排序的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
python報錯TypeError: ‘NoneType‘ object is not subscriptable的解決
這篇文章主要給大家介紹了關于python報錯TypeError: ‘NoneType‘ object is not subscriptable的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
django第一個項目127.0.0.1:8000不能訪問的解決方案詳析
django項目服務啟動后無法通過127.0.0.1訪問,下面這篇文章主要給大家介紹了關于django第一個項目127.0.0.1:8000不能訪問的解決方案,需要的朋友可以參考下2022-10-10
Jupyter notebook 更改文件打開的默認路徑操作
這篇文章主要介紹了Jupyter notebook 更改文件打開的默認路徑操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05

