用法- pandas.to_numeric(arg, errors='raise', downcast=None)
複製代碼
將參數轉換為數字類型。 默認返回dtype為float64或者int64取決於提供的數據。使用downcast參數以獲取其他dtype。 請注意,如果傳入非常大的數字,則可能會導致精度損失。ndarray,如果數字小於-9223372036854775808(np.iinfo(np.int64).min)或大於18446744073709551615(np.iinfo(np.uint64).max)傳入,很可能會將它們轉換為float以便將其存儲在ndarray。這些警告類似地適用於Series因為它在內部發揮了作用ndarray。 參數:
arg:scalar, list, tuple, 1-d array, 或 Series
errors:{‘ignore’, ‘raise’, ‘coerce’}, 默認為 ‘raise’
如果為‘raise’,則無效的解析將引發異常。
如果為‘coerce’,則將無效解析設置為NaN。
如果為‘ignore’,則無效的解析將返回輸入。
downcast:
{‘integer’, ‘signed’, ‘unsigned’, ‘float’}, 默認為 None
如果不是None,並且數據已成功轉換為數字dtype(或者數據是從數字開始的),則根據以下規則將結果數據轉換為可能的最小數字dtype:
‘integer’或‘signed’:最小有符號整數類型(最小值:np.int8)
‘unsigned’:最小的無符號整數dtype(最小值:np.uint8)
‘float’:最小浮點dtype(最小值:np.float32)
由於此行為與內核轉換為數值的行為是分開的,因此無論‘errors’輸入的值如何,在向下轉換期間引發的任何錯誤都將浮出水面。
此外,僅當結果數據的dtype的大小嚴格大於要強製轉換為dtype的dtype時,才會發生向下轉換,因此,如果檢查的所有dtype都不滿足該規範,則不會對該數據執行向下轉換。
返回值:
ret:如果解析成功,則為數字。返回類型取決於輸入。如果為Series,則為Series,否則為ndarray。
例子:
採取單獨的 Series 並轉換為數字,當被告知時強製 - >>> s = pd.Series(['1.0', '2', -3])
- >>> pd.to_numeric(s)
- 0 1.0
- 1 2.0
- 2 -3.0
- dtype:float64
- >>> pd.to_numeric(s, downcast='float')
- 0 1.0
- 1 2.0
- 2 -3.0
- dtype:float32
- >>> pd.to_numeric(s, downcast='signed')
- 0 1
- 1 2
- 2 -3
- dtype:int8
- >>> s = pd.Series(['apple', '1.0', '2', -3])
- >>> pd.to_numeric(s, errors='ignore')
- 0 apple
- 1 1.0
- 2 2
- 3 -3
- dtype:object
- >>> pd.to_numeric(s, errors='coerce')
- 0 NaN
- 1 1.0
- 2 2.0
- 3 -3.0
- dtype:float64
複製代碼
源碼:pandas.to_numeric的API實現見:[源代碼] 文章出處
|