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/
转载文章受原作者版权保护。转载请注明原作者出处!