python使用pd.to_numeric()方法将数据转为数字类型int或float

pandas.to_numeric(arg, errors=’raise’, downcast=None) [source]

将参数转换为数字类型。

默认返回dtype为float64或int64, 具体取决于提供的数据。使用downcast参数获取其他dtype。
————————————————

案例1

>>> 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='float')
0    1.0
1    2.0
2   -3.0
dtype: float32

>>> pd.to_numeric(s, downcast='signed')
0    1
1    2
2   -3
dtype: int8

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

案例2. 支持整型和浮点型进行下放

>>> s = pd.Series([1, 2, 3], dtype="Int64")
>>> pd.to_numeric(s, downcast="integer")
0    1
1    2
2    3
dtype: Int8

>>> s = pd.Series([1.0, 2.1, 3.0], dtype="Float64")
>>> pd.to_numeric(s, downcast="float")
0    1.0
1    2.1
2    3.0
dtype: Float32

案例3 一次性转换多列的格式

In [273]: cols = df.columns.drop('id')

In [274]: df[cols] = df[cols].apply(pd.to_numeric, errors='coerce')
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
                   'B': ['a', 'b', 'c', 'd', 'e'],
                   'C': [1.1, '1.0', '1.3', 2, 5] })

convert_dict = {'A': int,
                'C': float }

df = df.astype(convert_dict)
print(df.dtypes)

如果要选择所有string(object)列,请使用以下简单技巧:

cols = df.columns[df.dtypes.eq('object')]

Original: https://blog.csdn.net/weixin_46713695/article/details/125115026
Author: 赵孝正
Title: python使用pd.to_numeric()方法将数据转为数字类型int或float

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/638996/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球