pandas 笔记:to_numeric

2024-01-09 21:52:21

1 函数介绍

它用于将参数转换为数值类型

这个函数尤其适用于在数据清洗过程中,将数据集中的字符串或其他类型的列转换为数值型数据。

pandas.to_numeric(
    arg, 
    errors='raise', 
    downcast=None, 
    dtype_backend=_NoDefault.no_default)

2 参数说明

arg要转换的数据。可以是标量、列表、元组、一维数组或 Pandas Series
errors

决定了当转换过程中遇到无效数据时的行为。

  • 如果设置为 'raise',则无效解析将引发异常。
  • 如果设置为 'coerce',则无效解析将被设置为 NaN。
  • 如果设置为 'ignore',则无效解析将返回输入值。
downcast

用于指定转换后的数据类型。

  • 可以设置为 'integer''signed''unsigned''float'

3 举例说明

3.1 downcast

import pandas as pd
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='integer')
'''
0    1
1    2
2   -3
dtype: int8
'''

3.2 errors

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
'''
pd.to_numeric(s, errors='raise')
'''
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File D:\conda\lib\site-packages\pandas\_libs\lib.pyx:2369, in pandas._libs.lib.maybe_convert_numeric()

ValueError: Unable to parse string "apple"

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
Cell In[40], line 1
----> 1 pd.to_numeric(s, errors='raise')

File D:\conda\lib\site-packages\pandas\core\tools\numeric.py:185, in to_numeric(arg, errors, downcast)
    183 coerce_numeric = errors not in ("ignore", "raise")
    184 try:
--> 185     values, _ = lib.maybe_convert_numeric(
    186         values, set(), coerce_numeric=coerce_numeric
    187     )
    188 except (ValueError, TypeError):
    189     if errors == "raise":

File D:\conda\lib\site-packages\pandas\_libs\lib.pyx:2411, in pandas._libs.lib.maybe_convert_numeric()

ValueError: Unable to parse string "apple" at position 0
'''

文章来源:https://blog.csdn.net/qq_40206371/article/details/135383266
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。