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') # 所有數據轉換為int32df.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()內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。