Это мой фрейм данных:
import pandas as pd
df = pd.DataFrame(
{
'group': list('xxxxyyy'),
'open': [100, 150, 200, 160, 300, 150, 170],
'close': [105, 150, 200, 160, 350, 150, 170],
'stop': [104, 104, 104, 104, 400, 400, 400]
}
)
Ожидаемый результат — возврат группы x на основе столбца group:
group open close stop
0 x 100 105 104
1 x 150 150 104
2 x 200 200 104
3 x 160 160 104
Логика:
Я хочу проверить, находится ли df.stop.iloc[0] для каждой группы между df.open. iloc[0] и df.close.iloc[0]. А если между этими двумя, то я хочу вернуть всю эту группу.
Это моя попытка. Это работает, но я думаю, что есть лучший способ сделать это. Обратите внимание, что в предложении if необходимо проверить оба условия.
def func(df):
s = df.stop.iloc[0]
o = df.open.iloc[0]
c = df.close.iloc[0]
if (o
Подробнее здесь: https://stackoverflow.com/questions/789 ... lues-of-th
Как лучше всего фильтровать группы, условно проверяя только значения первой строки каждой группы? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение