您好,登錄后才能下訂單哦!
這篇“Pandas類型轉換astype()如何實現”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Pandas類型轉換astype()如何實現”文章吧。
Python中和Pandas中數據類型對應關系如下:
果數據是純凈的數據,可以轉化為數字
astype基本也就是兩種用作,數字轉化為單純字符串,單純數字的字符串轉化為數字,含有其他的非數字的字符串是不能通過astype進行轉化的。
需要引入其他的方法進行轉化,也就有了下面的自定義函數方法
astype()是最常見也是最通用的數據類型轉換方法
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') # 所有數據轉換為int32 df.astype({'col1':'int32'}) # 指定字段轉指定類型 s.astype('int64') s.astype('int64',copy = False) # 不與原數據關聯 df['name'].astype('object') data['Q4'].astype('float') s.astype('datatime64[ns]') # 轉為時間類型 data['狀態'].astype('bool')
數據類型
df.dtypes會返回每個字段的數據類型及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
當數據的格式不具備轉換為目標類型的條件時,需要先對數據進行處理
例如“89.3%”是一個字符串,要轉換為數字,要先去掉百分號:
# 將"89.3%"這樣的文本轉為浮點數 data.rate.apply(lambda x:x.replace('%','')).astype('float')/100
加載數據時可以指定數據各列的類型:
import pandas as pd # 對所有字段指定統一類型 df = pd.DataFrame(data, dtype = 'float32') # 對每個字段分別指定 df = pd.read_excel(data, dtype = {'team':'string','Q1':'int32'})
以上就是關于“Pandas類型轉換astype()如何實現”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。