数据清洗pd.to_numeric() & errors=‘coerce‘
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据清洗pd.to_numeric() & errors=‘coerce‘相关的知识,希望对你有一定的参考价值。
应用实例
请参考: 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‘的主要内容,如果未能解决你的问题,请参考以下文章