簡體   English   中英

檢查 Pandas Dataframe 列中的哪個值是字符串

[英]Check which value in Pandas Dataframe Column is String

我有一個包含大約 20 萬條記錄的 Dataframe。 當我輸入這個 Dataframe 作為 model 的輸入時,它會拋出這個錯誤:

不支持將字符串強制轉換為浮點數。

有什么方法可以檢查數據框中的哪個特定值導致了這個錯誤?

我嘗試運行此命令並檢查列中是否有任何值是字符串。

地圖中的錯誤((lambda x:type(x)== str),trainDF ['Embeddings'])

Output:

真的

在熊貓中,當我們轉換那些類型的混合列時,我們會做

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM