У меня есть следующий pandas dataframe:
A B
0 16.3 1.10
1 23.2 1.33
2 10.7 -0.43
3 5.7 -2.01
4 5.4 -1.86
5 23.5 3.14
Я хотел бы создать третий столбец, сравнив значения в столбце A в 2 смежных строках и сделав то же самое для следующих 2и т. д.
Возможно, это немного сбивает с толку, поэтому я приведу пример:
- Для первой строки, если
16.3 - 23.2 < 5
, то значение первой строкиновый столбец C
должен быть Bad
, если эта разница равна ==5
, тогда новый столбец должен быть Decent
и Good
, если разница составляет >5
- Для второй строки:примените ту же логику, но вместо этого используйте
23.2 - 16.3
и сгенерируйте значение C
для этой строки из этой разницы - Сделайте то же самое для строк 3 и 4 как пары, 5 и 6 какпара и так далее
Таким образом, результирующий кадр данных должен быть следующим:
A B C
0 16.3 1.10 Bad
1 23.2 1.33 Good
2 10.7 -0.43 Decent
3 5.7 -2.01 Bad
4 5.4 -1.86 Bad
5 23.5 3.14 Good
Я немного осмотрелся и обнаружил, что вы можете определить функцию, которая возвращает разные состояния изатем используйте df.apply.
Поэтому я подумал, что, возможно, можно было бы создать 2 функции: одну для нечетных строк, которая сравнивает значение A
со следующей строкой, и другую для четных строк, которая сравнивает его с предыдущей строкой..
Однако я не могу понять, как можно применить обе функции вместе для генерации столбца C
.
Как я могу это реализовать, или еслиэто простое решение, как это можно сделать?