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()的實現的文章就介紹到這瞭,更多相關Pandas 類型轉換astype()內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python數學建模之三大模型與十大常用算法詳情
- Python Pandas 中的數據結構詳解
- Python Pandas教程之series 上的轉換操作
- pandas 數據類型轉換的實現
- Python中的pandas表格模塊、文件模塊和數據庫模塊