Фреймы данных Python Создание столбца "Создать / Ложь" из 3 других столбцов "Правда / Ложь"
Я работаю над этим с финансовым DataFrame. Я хочу создать столбец df['LB4'], который возвращает true, если все LB1, LB2 и LB3 верны.
Date Open High Low Close Volume LB1 LB2 LB3
2005-01-03 4.63 4.65 4.47 4.52 173354034 False False False
2005-01-04 4.56 4.68 4.50 4.57 274515332 False False False
2005-01-05 4.60 4.66 4.58 4.61 170210264 False False True
2005-01-06 4.62 4.64 4.52 4.61 176469496 False True True
2005-01-07 4.64 4.97 4.62 4.95 558932752 True True False
Есть идеи?
Я новичок в Python и был бы признателен за любую помощь.
Благодарю вас
1 ответ
Начиная с этого (немного изменил ваш пример):
In [1095]: df
Out[1095]:
LB1 LB2 LB3
0 False False False
1 False False False
2 False False True
3 True True True
4 True True True
Вы можете использовать поразрядно &
:
In [1096]: df.LB1 & df.LB2 & df.LB3
Out[1096]:
0 False
1 False
2 False
3 True
4 True
dtype: bool
В качестве альтернативы, с df.all
:
In [1097]: df[['LB%d' %i for i in range(1, 4)]].all(axis=1)
Out[1097]:
0 False
1 False
2 False
3 True
4 True
dtype: bool
Вы можете сократить понимание списка до df.select_dtypes([bool]).all(axis=1)
если вы знаете, что только эти столбцы логические и ничего больше.