我有一个由大约20万条记录组成的数据帧。当我输入这个数据帧作为模型的输入时,它会抛出以下错误:
不支持将字符串强制转换为float。有什么方法可以检查数据帧中的哪个特定值导致此错误吗?
我试着运行这个命令,并检查列中是否有任何值是字符串。
映射中为False((lambda x:type(x(==str(,trainDF["嵌入"](
输出:
真实
在panda中,当我们转换这些类型的混合列时,我们会进行
df['col'] = pd.to_numeric(df['col'],errors = 'coerce')
对于那些无法转换为浮动的项目,它将返回NaN
,您可以用dropna
删除或用fillna
填充一些默认值
您应该循环使用trainDF
的索引,并使用try except
查找有错误的行。
>>> import pandas as pd
>>> trainDF = pd.DataFrame({'Embeddings':['100', '23.2', '44a', '453.2']})
>>> trainDF
Embeddings
0 100
1 23.2
2 44a
3 453.2
>>> error_indices = []
>>> for idx, row in trainDF.iterrows():
... try:
... trainDF.loc[idx, 'Embeddings'] = float(row['Embeddings'])
... except:
... error_indices.append(idx)
...
>>> trainDF
Embeddings
0 100.0
1 23.2
2 44a
3 453.2
>>> trainDF.loc[error_indices]
Embeddings
2 44a