2017-07-25 1 views
0

Je travaille avec DataFrame financier. Je veux créer une colonne df ['LB4'], qui retourne vrai si tous les LB1, LB2 et LB3 sont vrais.Python DataFrames Créer une colonne 'Create/False' à partir de 3 autres colonnes 'True/False'

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 

Des idées? Je suis nouveau à Python et j'apprécierais n'importe quelle aide.

Merci Vous

Répondre

1

A partir de cette (modifié votre exemple un peu):

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 

Vous pouvez utiliser bitwise &:

In [1096]: df.LB1 & df.LB2 & df.LB3 
Out[1096]: 
0 False 
1 False 
2 False 
3  True 
4  True 
dtype: bool 

Alternativement, avec 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 

Vous pouvez réduire la compréhension de la liste df.select_dtypes([bool]).all(axis=1) si vous ne connaissez que ces colonnes sont booléennes et rien d'autre.