Я работаю с рамкой данных pandas. Я пытаюсь создать новый столбец, данные ['Labels'], который содержит метки, определяемые изменением значения между строкой i и строкой i + n в данных столбца ['diff'], для всей длины блока данных.python dataframe rows: если значение в строке + n> значение в строке, установите переменную в A
Я представляю себе что-то из следующего, однако это возвращает меня ошибки:
for i in range(len(data['diff'])-1):
data.loc[data['diff'][i] >= data['diff'][i+n], 'Labels'] = 'A'
data.loc[data['diff'][i] < data['diff'][i+n], 'Labels'] = 'B'
пример вывода:
index diff label
9 117.32 B
10 108.32 A
11 125.36 A
12 127.36 A
13 139.28 A
14 141.22 A
15 147.89 A
16 153.89 B
17 153.89 B
18 156.87 B
19 168.84 B
20 161.04 B
21 172.04 B
24 175.16 B
22 164.04 B
23 164.16 B
27 175.16 B
25 149.16 A
вы можете просто сделать 'данных [«Labels»] = нп .where (data ['diff']> = data ['diff']. shift(), 'A', 'B') ' – EdChum
Hi Ed, Спасибо! Это отлично работает для сравнения i и i + 1, однако я просто понял, что мне хотелось бы, чтобы сдвиг также включал возможность того, что данные ['diff'] [i]> = data ['diff] [i + n]. В принципе, я хочу создать ярлык в зависимости от изменений в любом месте в тайниках данных ['diff']. – wsp1morlet
Изменение ваших требований - плохая форма для SO, также в вашем комментарии требуется дальнейшее объяснение: 'n' исправлено? или вы хотите сравнить 'i' с рядом строк? – EdChum