更新時間:2022年11月01日09時41分 來源:傳智教育 瀏覽次數(shù):
在Python中,通過astype()方法可以強制轉(zhuǎn)換數(shù)據(jù)的類型,其語法格式如下:
astype( dtype, copy=True, errors ='raise', ** kwargs)
上述方法中部分參數(shù)表示的含義如下:
(1)dtype:表示數(shù)據(jù)的類型。
(2)copy:是否建立副本,默認為True。
(3)errors:錯誤采取的處理方式,可以取值為raise或ignore,默認為raise。其中,raise表示允許引發(fā)異常,ignore表示抑制異常。
接下來,通過一個示例來演示如何通過astype()方法來強制轉(zhuǎn)換數(shù)據(jù)的類型。
首先,創(chuàng)建一個DataFrame對象,并且使用dtypes屬性查看數(shù)據(jù)的類型,具體代碼如下。
In [21]: import pandas as pd df=pd.DataFrame({'A': ['1', '1.2', '4.2'], 'B': ['-9', '70', '88'], 'C': ['x', '5.0', '0']}) df.dtypes Out[21]: A object B object C object dtype: object
從輸出結(jié)果看出,所有數(shù)據(jù)的類型均為object。
然后,將B列數(shù)據(jù)的類型轉(zhuǎn)換為int類型,實現(xiàn)對指定列的數(shù)據(jù)進行類型轉(zhuǎn)換,示例代碼如下:
In [22]: df['B'].astype(dtype='int') # 強制轉(zhuǎn)換為int類型 Out[22]: 0 -9 1 70 2 88 Name: B, dtype:int32
需要注意的是,這里并沒有將所有列進行類型轉(zhuǎn)換,主要是因為C列中有非數(shù)字類型的字符,無法將其轉(zhuǎn)換為int類型,若強制轉(zhuǎn)換會出現(xiàn)ValueError異常。