Фреймы данных 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) если вы знаете, что только эти столбцы логические и ничего больше.

Другие вопросы по тегам