#python #excel
#питон #преуспеть
Вопрос:
У меня есть фрейм данных с отмеченными значениями?:
**A1 A2 A3 A4**
=================
a 1 2.67 2.3
b ? 9.00 3.2
aa 0 3.33 4.4
a 0 ? 1.5
и использование dtypes () для проверки типа:
A1: object
A2: object
A3: object
A4: float64
Теперь я заменяю ?
отмеченные значения на np.NaN
, а затем использую dropna()
для очистки отмеченных значений.
Фрейм данных теперь выглядит так:
**A1 A2 A3 A4**
=================
a 1 2.67 2.3
aa 0 3.33 4.4
и если я использую dtypes()
его еще раз для проверки, результаты останутся теми же:
A1: object
A2: object
A3: object
A4: float64
В то время как я ожидаю, что тип данных A2 должен быть Bool
, а тип данных A3 должен быть float64
.
Любая помощь или объяснение по этому поводу?
Ответ №1:
Это строковые представления чисел, возможно, применимые pd.to_numeric
:
df.apply(pd.to_numeric)
После нового df
Комментарии:
1. он показывает ошибку «Невозможно разобрать строку «a» в позиции 0″. Похоже, что весь набор данных будет изменен на числовой тип. Хотя результат, который я ожидаю, будет следующим: A1: object, A2: Bool, A3 и A4: float64