Вы можете сделать это прямо:
(history['open']-history['low'])>0
Это даст вам true
для строк, где open
больше и flase
, где low
больше.
И если вы хотите 1,0
, вы можете умножить вышеприведенный оператор на 1.
((history['open']-history['low'])>0)*1
Пример
import numpy as np
import pandas as pd
df = pd.DataFrame({'a':np.random.random(10),
'b':np.random.random(10)})
Печать фрейм данных:
print(df)
a b
0 0.675916 0.796333
1 0.044582 0.352145
2 0.053654 0.784185
3 0.189674 0.036730
4 0.329166 0.021920
5 0.163660 0.331089
6 0.042633 0.517015
7 0.544534 0.770192
8 0.542793 0.379054
9 0.712132 0.712552
Чтобы создать новый столбец compare
, где он равен 1, если a
больше, и 9, если b
больше:
df['compare'] = (df['a']-df['b']>0)*1
, это будет добавить новый столбец compare
:
a b compare
0 0.675916 0.796333 0
1 0.044582 0.352145 0
2 0.053654 0.784185 0
3 0.189674 0.036730 1
4 0.329166 0.021920 1
5 0.163660 0.331089 0
6 0.042633 0.517015 0
7 0.544534 0.770192 0
8 0.542793 0.379054 1
9 0.712132 0.712552 0