Пример:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A':[True, False, True],
'B':[True, False, np.nan],
'C':[True, False, True]})
df.loc[[2],'C'] = np.nan
print(df, df.dtypes, sep='\n\n')
>>>
A B C
0 True True 1.0
1 False False 0.0
2 True NaN NaN
A bool
B object
C float64
dtype: object
Я понимаю, что в "C"
типы данных преобразуются в float (а не int
b / c ValueError: cannot convert float NaN to integer
). Но почему этого не происходит в "B"
? Почему столбец типа bool
может быть преобразован в float64
при редактировании данных, но столбец логических значений с некоторыми недостающими данными не может быть преобразован?
Я столкнулся с некоторыми операциями в pandas
, который, как я ожидаю, будет работать в столбце "A"
, но в конечном итоге мне нужно более четко указать тип данных ( здесь, например, ).