Как я могу создать логический пустой столбец во фрейме данных pandas?

#python #pandas #boolean

#python #pandas #логическое

Вопрос:

Я хочу добавить пустой логический столбец в данный фрейм данных pandas. На данный момент я сделал это (df является моим фреймом данных):

 df["empty_bool_col"]=None
df["empty_bool_col"]=df["empty_bool_col"].astype(bool)
  

Тогда мой столбец выглядит следующим образом:

 0    False
1    False
2    False
3    False
Name: empty_bool_col, Length: 4, dtype: bool
  

Это не отражает тот факт, что некоторые значения могут отсутствовать, и что столбец фактически пуст. Невозможно ли получить пустой столбец логического типа внутри фрейма данных pandas?

Комментарии:

1. Я не думаю, что это возможно. Логическое значение хранит либо True, либо False, обходным путем было бы изменить его на столбец int с 1, 0 или NaN.

2. Как сказал Скотт, я уверен, что это невозможно, поскольку логические значения являются двумя постоянными объектами python. Решение, предложенное @ScottBoston, является хорошим обходным путем. Или, если вы не собираетесь использовать его для вычисления, используйте числа в виде строк: ‘1’, ‘0’ и пустую строку »

3. Вы можете исправить это, преобразовав в object , затем замаскировав nan ……. однако это испортит ваш тип данных ..

Ответ №1:

Вы можете использовать numpy.nan и тип ‘boolean’. Для меня это хорошо работает.

 import numpy as np
df["empty_bool_col"]=np.nan
df["empty_bool_col"]=df["empty_bool_col"].astype('boolean')