и в 8 раз лучше чем

отаю с довольно большим набором данных (более 4 ГБ), который я импортировал вpandas, Некоторые столбцы в этом наборе данных являются простыми индикаторами True / False, и, естественно, наиболее эффективным способом их хранения является использованиеbool dtype для этого столбца. Тем не менее, столбец также содержит некоторые значения NaN, которые я хочу сохранить. Прямо сейчас это приводит к тому, что столбец имеет тип с плавающей запятой (со значениями1.0, 0.0 а такжеnp.nan) или объект, но они оба используют слишком много памяти.

В качестве примера:

df = pd.DataFrame([[True,True,True],[False,False,False], 
                   [np.nan,np.nan,np.nan]])
df[1] = df[1].astype(bool)
df[2] = df[2].astype(float)
print(df)
print(df.memory_usage(index=False, deep=True))
print(df.memory_usage(index=False, deep=False))

результаты в

       0      1    2
0   True   True  1.0
1  False  False  0.0
2    NaN   True  NaN

0       100
1         3
2        24
dtype: int64

0        24
1         3
2        24
dtype: int64

Каков наиболее эффективный способ хранения таких значений, зная, что они могут принимать только 3 различных типа значений:True, False а также<undefined>

Ответы на вопрос(1)

Ваш ответ на вопрос