检查Pandas Dataframe Column中的哪个值是String



我有一个由大约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

相关内容

最新更新