Python handlee并将同一列中的多个数据类型转换为数字

Python handlee并将同一列中的多个数据类型转换为数字,python,pandas,types,numeric,Python,Pandas,Types,Numeric,我正在尝试清理我的数据帧。问题是,我想将300多个不同的列转换为数字,但在同一列中,我有多种数据类型。 作为数据帧的示例: ID MONOCITOS EOSIN EOSINOFILOS NORMOBLASTOS 0 5 0.21 2 0 0.04 31.0 2 9 <0.22 False 0 0.04 33.0 5 12.8 0.16 0 0 0.02 sdfdr 6 No 0

我正在尝试清理我的
数据帧
。问题是,我想将300多个不同的列转换为数字,但在同一列中,我有多种数据类型。 作为
数据帧的示例:

ID  MONOCITOS   EOSIN    EOSINOFILOS NORMOBLASTOS   
0   5   0.21    2   0   0.04    31.0
2   9   <0.22   False   0   0.04    33.0
5   12.8    0.16    0   0   0.02    sdfdr
6   No  0   fh  0   0.02    60.0
9   0   0.28    3   -   0.06    Nan
14  3   -   3   -   -   59.0
ID单核细胞曙红-曙红-正常成纤维细胞
0   5   0.21    2   0   0.04    31.0

2 9您可以像这样转换多个列:

df[["col1", "col2"]] = df[["col1", "col2"]].apply(pd.to_numeric, errors='coerce')
或更改整个数据帧:

df = df.apply(pd.to_numeric, errors='coerce')

强制将导致不可转换的值为NaN

我不知道有什么工具,但您可以遍历列并编写一个函数,通过编程来实现这一点。在简单的情况下,您可以使用:pd.to_numeric use
df=df.apply(pd.to_numeric,errors='concurve')
我已经尝试过这个解决方案,但它不起作用。由于列的某些值是字符串数据类型,因此整个列类型仍然是对象类型。这不适用于“300个不同的列”。您可以一次查看一组列。例如,使用一个一次转换10列的循环Yeah like::For c in df.columns:column=df[c]您还可以一次传递整个
df
df=df.apply(pd.to_numeric,errors='concurve')
True。传递列名只是为了防止同时更改列名太多。我将更改以使其更加明确