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所有,未经许可,不得转载
你可能还喜欢