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()