数据清洗pd.to_numeric() & errors=‘coerce‘

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据清洗pd.to_numeric() & errors=‘coerce‘相关的知识,希望对你有一定的参考价值。

pd.to_numeric

应用实例

请参考: Pandas:errors=‘coerce‘ & infer_datetime_format=True

# 模拟数据
import pandas as pd

df = pd.DataFrame([[1,2,3,4,16],['1','2','3','4','F']],index =['Data1','Data2'])
print(df)

在这里插入图片描述

# 翻十倍,查看结果与预想结果的差别
df.apply(lambda x: x * 10)

在这里插入图片描述
Data2 行的数据看上去像数值,但就结果而言,像是字符串。

*:对于 num乘号,对于 str复制

现在我们最迫切需要知道的每列数据的类型是什么,Pandas 已经提供了查看 DataFrame 各个列数据类型的属性的方法。

# 查看数据类型
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')

在这里插入图片描述

# 再次运算,查看结果与预想结果的差别
df = df.apply(lambda x: x * 10)

在这里插入图片描述

现在数据是我们想要的结果。

整合代码

# 模拟数据
import pandas as pd

df = pd.DataFrame([[1,2,3,4,16],['1','2','3','4','F']],index =['Data1','Data2'])
print(df)

# 翻十倍,查看结果与预想结果的差别
df.apply(lambda x: x * 10)

# 查看数据类型
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')

# 查看成功转换后的结果
df.loc['Data2'] 

# 再次运算,查看结果与预想结果的差别
df = df.apply(lambda x: x * 10)
print(df)

# 查看数据类型
df.dtypes

参考Link

加油!

感谢!

努力!

以上是关于数据清洗pd.to_numeric() & errors=‘coerce‘的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫中将 if/else 转换为 np.where

数据清洗&模型调优

数据分析-Excel基础篇(数据清洗)

数据清洗

Python数据清洗 & 预处理入门完整指南

Python数据清洗 & 预处理入门完整指南