#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')