I have a problem with the following data:
month
product
version
price
category
1
A
alpha
500
foo
2
A
alpha
500
foo
3
A
alpha
550
foo
4
A
alpha
600
bar
5
A
alpha
500
bar
6
A
alpha
500
faz
7
A
alpha
500
faz
8
A
alpha
500
faz
9
A
alpha
500
faz
10
A
alpha
500
foo
4
A
beta
700
bar
5
A
beta
800
bar
6
A
beta
800
faz
7
A
beta
800
faz
8
A
beta
800
faz
9
A
beta
700
faz
10
A
beta
500
foo
1
B
alpha
200
foo
2
B
alpha
200
foo
3
B
alpha
250
foo
4
B
alpha
250
bar
5
B
alpha
250
bar
6
B
alpha
250
faz
7
B
alpha
250
faz
8
B
alpha
250
faz
9
B
alpha
500
faz
10
B
alpha
500
foo
4
B
beta
700
bar
5
B
beta
800
bar
6
B
beta
800
faz
7
B
beta
800
faz
8
B
beta
800
faz
9
B
beta
700
faz
10
B
beta
500
foo
What I would like to do is group by the product and version, and tag the rows where the price remains the same BUT the category changes from the preceding month for each product+version group. Additionally I want to tag all rows below the first category change where the price is consistent with the last row of the preceding category
I have tried approaches in SQL with LEAD and LAG as well as CASE WHEN exists but I am not able to get the logic to work as desired. My approaches have been able to tag one following month but not several months after a category change.
I am also open to implementing a solution in python.
The tag column below represents the desired output.
month
product
version
price
category
tag
1
A
alpha
500
foo
OK
2
A
alpha
500
foo
OK
3
A
alpha
550
foo
OK
4
A
alpha
600
bar
OK
5
A
alpha
500
bar
OK
6
A
alpha
500
faz
FLAG
7
A
alpha
500
faz
FLAG
8
A
alpha
500
faz
FLAG
9
A
alpha
500
faz
FLAG
10
A
alpha
500
foo
FLAG
4
A
beta
700
bar
OK
5
A
beta
800
bar
OK
6
A
beta
800
faz
FLAG
7
A
beta
800
faz
FLAG
8
A
beta
800
faz
FLAG
9
A
beta
700
faz
OK
10
A
beta
500
foo
OK
1
B
alpha
200
foo
OK
2
B
alpha
200
foo
OK
3
B
alpha
250
foo
OK
4
B
alpha
250
bar
FLAG
5
B
alpha
250
bar
FLAG
6
B
alpha
250
faz
FLAG
7
B
alpha
250
faz
FLAG
8
B
alpha
250
faz
FLAG
9
B
alpha
500
faz
OK
10
B
alpha
500
foo
OK
4
B
beta
700
bar
OK
5
B
beta
800
bar
OK
6
B
beta
800
faz
FLAG
7
B
beta
800
faz
FLAG
8
B
beta
800
faz
FLAG
9
B
beta
700
faz
OK
10
B
beta
500
foo
OK
Подробнее здесь: https://stackoverflow.com/questions/790 ... -a-conditi
Отмечайте последующие строки после изменения значения в одном столбце A в зависимости от условия в столбце B. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Выявляйте и отмечайте дубликаты, каждый из которых имеет определенное качество.
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Выявляйте и отмечайте дубликаты, каждый из которых имеет определенное качество.
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как сопоставить первое слово строки и отдельные последующие значения с запятой
Anonymous » » в форуме Python - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-