使用 pandas 将对象类型列转换为数字类型
converting object types columns into numeric type using pandas
我正在尝试使用 pandas 清理数据。当我执行 df.datatypes 时,它显示列是对象类型。我希望将它们转换为数字类型。
我尝试了各种方法,例如;
data[['a','b']] = data[['a','b']].apply(pd.to_numeric, errors ='ignore')
然后,
data['c'] = data['c'].infer_objects()
但似乎没有任何效果。解释器不会抛出任何错误,但同时不会执行所需的转换。
任何帮助将不胜感激。
提前致谢。
来自to_numeric
的帮助页面,errors
的说明如下:
errors : {'ignore', 'raise', 'coerce'}, default 'raise'
- If 'raise', then invalid parsing will raise an exception
- If 'coerce', then invalid parsing will be set as NaN
- If 'ignore', then invalid parsing will return the input
如果你的 apply
returns 你的输入没有对它做任何事情,那么原因是因为你有不可转换的对象,并且用 [=17= 调用 to_numeric
] 没有帮助。
尝试使用第二个选项,errors='coerce'
。
df = df.apply(pd.to_numeric, errors='coerce')
或者,
for c in df.columns:
df[c] = pd.to_numeric(df[c], errors='coerce')
此外,infer_objects
执行软类型转换。如果要检查列数据类型,请改用 df.dtypes
。
我正在尝试使用 pandas 清理数据。当我执行 df.datatypes 时,它显示列是对象类型。我希望将它们转换为数字类型。 我尝试了各种方法,例如;
data[['a','b']] = data[['a','b']].apply(pd.to_numeric, errors ='ignore')
然后,
data['c'] = data['c'].infer_objects()
但似乎没有任何效果。解释器不会抛出任何错误,但同时不会执行所需的转换。
任何帮助将不胜感激。
提前致谢。
来自to_numeric
的帮助页面,errors
的说明如下:
errors : {'ignore', 'raise', 'coerce'}, default 'raise'
- If 'raise', then invalid parsing will raise an exception
- If 'coerce', then invalid parsing will be set as NaN
- If 'ignore', then invalid parsing will return the input
如果你的 apply
returns 你的输入没有对它做任何事情,那么原因是因为你有不可转换的对象,并且用 [=17= 调用 to_numeric
] 没有帮助。
尝试使用第二个选项,errors='coerce'
。
df = df.apply(pd.to_numeric, errors='coerce')
或者,
for c in df.columns:
df[c] = pd.to_numeric(df[c], errors='coerce')
此外,infer_objects
执行软类型转换。如果要检查列数据类型,请改用 df.dtypes
。