将熊猫数据框列转换为数字的更好方法

Sve*_*inn 1 python type-conversion dataframe pandas

由于一些时髦的数据条目(又名 . 或诸如此类),我有一个数据框,其中一些列包含 object 类型的数据。

我已经能够通过识别对象列然后执行以下操作来纠正此问题:

obj_cols = df.loc[:, df.dtypes == object]
conv_cols = obj_cols.convert_objects(convert_numeric='force')
Run Code Online (Sandbox Code Playgroud)

这工作正常,并允许我运行我需要的回归,但会产生此错误:

FutureWarning: convert_objects is deprecated.
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点以避免错误?我也尝试构建一个 lambda 函数,但没有奏效。

Vai*_*ali 5

Convert_objects 已弃用。改用这个。您可以添加参数 errors='coerce' 将错误的非数值转换为 NaN。

conv_cols = obj_cols.apply(pd.to_numeric, errors = 'coerce')
Run Code Online (Sandbox Code Playgroud)

该函数将应用于整个 DataFrame。可以转换为数字类型的列将被转换,而不能转换的列(例如它们包含非数字字符串或日期)将被保留。