Python示例中的Pandas to_numeric()函數
熊市貓to_numeric()是一個內置函數,用於將參數轉換為數字類型。函數的默認返回類型為float64或int64,具體取決於提供的輸入。要獲取其他數據類型的值,我們需要使用downcast參數。
還有一點要注意的是,如果輸入的數字太大,可能會導致精度損失。這是由於ndarray的內部限制。
要將參數轉換為數字類型,可以使用to_numeric()方法。
句法
pandas.to_numeric(arg, errors=』raise』, downcast=None)
參量
to_numeric()方法具有三個參數,其中一個是可選參數。
- arg:它是輸入,可以是列表,一維數組或序列。
- 錯誤:它可以包含三個值:「忽略」,「提高」,「強制」。默認值為「 raise」。如果是「 raise」,則無效的解析將設置一個異常。如果為「強制」,則無效解析將設置為NaN。如果為「 ignore」,則無效的解析將返回輸入。
- downcast:默認情況下,其值為None,如果該值不為None並且數據已成功轉換為數字數據類型downcast,則根據參數downcast中傳遞的值,將其轉換為最小的數字數據類型。它可以具有值「整數」 /「有符號」,「無符號」,「浮點數」。
返回值
如果解析成功,Pandas的to_numeroc()方法將返回數字數據。需要注意的一件事是,返回類型取決於輸入。
如果將序列作為輸入傳遞,則返回序列,對於所有其他情況,返回ndarray。
pandas.to_numeric()上的示常式序
編寫一個程序來演示pandas.to_numeric()的工作。
import pandas as pd data = pd.Series(['1', '2', '3.6', '7.8', '9']) print(pd.to_numeric(data))
輸出量
0 1.0 1 2.0 2 3.6 3 7.8 4 9.0 dtype: float64
在這裡我們可以看到,當我們通過一個系列時,它已經將該系列轉換為數字,並且還提到了dtype,它等於float64。要將其更改為特定的數據類型,我們需要傳遞帶有適當參數的downcast參數。
編寫一個程序,通過傳遞在downcast參數中籤名的值來顯示to_numeric()函數的工作方式。
請參閱以下代碼。
import pandas as pd data = pd.Series(['1', '2', '3.6', '7.8', '9', '-3', '-56', '-60']) print(pd.to_numeric(data, downcast="signed"))
輸出量
0 1.0 1 2.0 2 3.6 3 7.8 4 9.0 5 -3.0 6 -56.0 7 -60.0 dtype: float64
在這裡,我們可以看到已經將downcast參數設置為signed並獲得了所需的輸出。
使用錯誤=「加薪」。
如果發現任何錯誤,它將引發錯誤。請參閱以下代碼。
import pandas as pd ser = pd.Series(['Eleven', 11, 21, 19]) num = pd.to_numeric(ser, errors="raise") print(num)
輸出量
Traceback (most recent call last): File "pandas/_libs/lib.pyx", line 1926, in pandas._libs.lib.maybe_convert_numeric ValueError: Unable to parse string "Eleven" During handling of the above exception, another exception occurred: Traceback (most recent call last): File "app.py", line 4, innum = pd.to_numeric(ser, errors="raise") File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pandas/core/tools/numeric.py", line 149, in to_numeric values = lib.maybe_convert_numeric( File "pandas/_libs/lib.pyx", line 1963, in pandas._libs.lib.maybe_convert_numeric ValueError: Unable to parse string "Eleven" at position 0
我們得到ValueError:無法解析字元串「十一」。
如果您傳遞的錯誤=「忽略」,則不會拋出錯誤。讓我們在下一個會話中看到這一點。
使用錯誤=「忽略」
它將忽略所有非數字值。
import pandas as pd ser = pd.Series(['Eleven', 11, 21, 19]) num = pd.to_numeric(ser, errors="ignore") print(num)
在此示例中,我們創建了一個包含一個字元串和其他數字的系列。
因此,如果我們添加錯誤=「忽略」,那麼您將不會得到任何錯誤,因為您正在明確定義在轉換為數值時請忽略所有錯誤。
查看輸出。
0 Eleven 1 11 2 21 3 19 dtype: object
由於error = ignore參數,我們沒有收到任何錯誤。
結論
熊市貓的to_numeric()函數將參數轉換為數字類型。通過傳遞不同的參數,我們已經看到了to_numeric()函數的變體。
本教程就是這樣。
也可以看看
熊市貓數據框to_numpy()
熊市貓DataFrame to_json()
熊市貓系列to_frame()