Pandas之pd.to_numeric()
pd.to_numeric()是Pandas的常规函数之一,用于将参数转换为数字类型.
用法: pd.to_numeric(arg, errors='raise', downcast=None)
参数:
- arg: 列表, 元组, 一维数组或Series
- errors: {'ignore', 'raise', 'coerce'}, 默认为'raise'
- 'raise', 表示无效的解析将引发异常, 即对于非数字型的字符串将报错
- 'coerce', 表示无效的解析将设置为NaN
- 'ignore', 表示无效的解析将返回输入
- downcast: [默认无]如果不为None, 并且数据已成功转换为数字dtype,则根据以下规则将结果数据转换为可能的最小数字dtype:
- "整数"或"有符号": 最下的有符号整数dtype(最小值:np.int8)
- 'unsigned': 最小的unsigned int dtype(最小值: np.uint8)
- 'float': 最小float dtype(最小值: np.float32)
返回: 如果解析成功,则为数字.请注意,返回类型取决于输入.如果为Series,则为Series, 否则为array.
import pandas as pd
df = pd.DataFrame([[1,2,3,4,16],['1','2','3','4','F']],index =['Data1','Data2'])
print(df)
# 翻十倍,查看结果与预想结果的差别
print(df.apply(lambda x: x * 10))
# 查看数据类型
print(df.dtypes)
# df.loc['Data2'] = pd.to_numeric(df.loc['Data2']) # 报错
# 只转换能转换的,不能转换的赋值为 NaN(Not a Number)
df.loc['Data2'] = pd.to_numeric(df.loc['Data2'] ,errors='coerce')
# 查看成功转换后的结果
print(df.loc['Data2'])
# 再次运算,查看结果与预想结果的差别
df = df.apply(lambda x: x * 10)
print(df)
# 查看数据类型
df.dtypes
output:
0 1 2 3 4
Data1 1 2 3 4 16
Data2 1 2 3 4 F
0 1 2 3 4
Data1 10 20 30 40 160
Data2 1111111111 2222222222 3333333333 4444444444 FFFFFFFFFF
0 object
1 object
2 object
3 object
4 object
dtype: object
0 1.0
1 2.0
2 3.0
3 4.0
4 NaN
Name: Data2, dtype: object
0 1 2 3 4
Data1 10 20 30 40 160
Data2 10.0 20.0 30.0 40.0 NaN
0 object
1 object
2 object
3 object
4 object
dtype: object
import pandas as pd
import numpy as np
s = pd.Series(['apple', '1.0', '2','2019-01-02',1, False,None,pd.Timestamp('2018-01-05')])
s
output:
0 apple
1 1.0
2 2
3 2019-01-02
4 1
5 False
6 None
7 2018-01-05 00:00:00
dtype: object
0 NaN
1 1.0
2 2.0
3 NaN
4 1.0
5 0.0
6 NaN
7 NaN
dtype: float64
浙公网安备 33010602011771号