У меня есть dataframe, 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"
Я также хотел бы знать, почему в приведенном выше коде, заменяющем "'на" неизвестный ", код будет работать для определенных ячеек, но не с ячейкой с ошибкой" ValueError: ошибка синтаксического анализа строки datetime "неизвестно" в позиции 0 "
Большое спасибо!
Ю.