Python示例中的Pandas to_numeric()函數

熊市貓to_numeric()是一個內置函數,用於將參數轉換為數字類型。函數的默認返回類型為float64或int64,具體取決於提供的輸入。要獲取其他數據類型的值,我們需要使用downcast參數。

還有一點要注意的是,如果輸入的數字太大,可能會導致精度損失。這是由於ndarray的內部限制。

要將參數轉換為數字類型,可以使用to_numeric()方法。

句法

pandas.to_numeric(arg, errors=』raise』, downcast=None)

參量

to_numeric()方法具有三個參數,其中一個是可選參數。

  1. arg:它是輸入,可以是列表,一維數組或序列。
  2. 錯誤:它可以包含三個值:「忽略」,「提高」,「強制」。默認值為「 raise」。如果是「 raise」,則無效的解析將設置一個異常。如果為「強制」,則無效解析將設置為NaN。如果為「 ignore」,則無效的解析將返回輸入。
  3. 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, in 
    num = 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()

資訊來源:由0x資訊編譯自APPDIVIDEND,版權歸作者Ankit Lathiya所有,未經許可,不得轉載
你可能還喜歡