Типы данных логических значений с пропущенными значениями в pandas - PullRequest
3 голосов
/ 14 июля 2020

Пример:

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", но в конечном итоге мне нужно более четко указать тип данных ( здесь, например, ).

...