我有一个数据框 df,它有一些 float64 类型的列,而其他的则是对象。由于混合性质,我不能使用
df.fillna('unknown') #getting error "ValueError: could not convert string to float:"
因为错误发生在类型为 float64 的列上(多么具有误导性的错误消息!)
所以我希望我能做类似的事情
for col in df.columns[<dtype == object>]:
df[col] = df[col].fillna("unknown")
所以我的问题是是否有任何可以与 df.columns 一起使用的过滤器表达式?
我想,或者,不那么优雅,我可以这样做:
for col in df.columns:
if (df[col].dtype == dtype('O')): # for object type
df[col] = df[col].fillna('')
# still puzzled, only empty string works as replacement, 'unknown' would not work for certain value leading to error of "ValueError: Error parsing datetime string "unknown" at position 0"
我也想知道为什么在上面的代码中用 'unknown' 替换 '' 代码对某些单元格有效,但由于单元格失败,错误为“ValueError: Error parsing datetime string “unknown” at position 0”
非常感谢!
于