pd.to_numeric


將參數轉換為數字類型。

默認返回dtypefloat64int64, 具體取決於提供的數據。使用downcast參數獲取其他dtype

參數 描述
args 接受scalar, list, tuple, 1-d array, or Series類型
errors 有3種類型{‘ignore’, ‘raise’, ‘coerce’}, 默認為‘raise’
downcast {‘integer’, ‘signed’, ‘unsigned’, ‘float’} , default None,默認返回float64int64

注意downcast的意思是向下轉換

errors中參數的解釋:

'raise'參數:無效的解析將引發異常

'corece'參數:將無效解析設置為NaN

'ignore'參數:無效的解析將返回輸入

downcast中參數的意義:

默認的None就是不進行處理

'integer'和'signed':最小的有符號整數dtype(最小值np.int8)

'unsigned':最小的unsigned int dtype(np.uint8)

'float':最小的float dtype(np.float32)

返回值:如果解析成功,則為數字。其中返回類型取決於輸入。如果為Series,則為Series,否則為ndarray。

數據集構建代碼如下:

import pandas as pd
import numpy as np
s = pd.Series(['apple', '1.0', '2','2019-01-02',1, False,None,pd.Timestamp('2018-01-05')])

比如對於如下的數據:

執行raise會報錯,因為該數據里面有非數字,結果如下:

執行ignore結果如下:

執行coerce結果如下:

向下轉換期間引發的任何錯誤都會浮出水面。此外,僅當結果數據的dtype的大小,嚴格大於要強制轉換為dtype的dtype時,
才會發生向下轉換,因此,如果檢查的所有dtype都不滿足該規范,則不會對該數據執行向下轉換。

不理解可以試試就理解了,比如對該數據在'coerce'條件下執行integer會發現轉換的是float。

數據轉換還有astype的方法:

# astype中的error沒有`coerce`選項,所以只適合`numeric`內部類型的轉換,比如將int32轉換為int64,int32轉換為float32
# 而不適合在object,時間格式之間做轉換,
s.astype('int32',errors='raise')
s.astype('int32',errors='ignore')  # 對object無效,astype只能對numeric類型生效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM