Пожалуйста, помогите с приведенным ниже
import pandas as pd
df = pd.DataFrame({'Grp': [1,1,1,1,2,2,2,2,3,3,3,4,4,4], 'Org1': ['x','x','y','y','z','y','z','z','x','y','y','z','x','x'], 'Org2': ['a','a','b','b','c','b','c','c','a','b','b','c','a','a'], 'Value': [0,0,3,1,0,1,0,5,0,0,0,1,1,1]})
df
*** Мне нужно первое ненулевое значение, имеющее "FLAG" = 1 и другие 0
Детали:
Для каждого уникального набора «Grp, Org1, Org2» и на основе «Значения» «FLAG» должен иметь 1, а остальные - 0.
Если все значения в столбце равны 0, тогда FLAG = 0 для все
Если в столбце все значения равны NON ZERO, то первый экземпляр имеет FLAG = 1 и другие 0
Я ожидаю вывод, как показано ниже
+----+-----+------+------+-------+------+
| | Grp | Org1 | Org2 | Value | FLAG |
+----+-----+------+------+-------+------+
| 0 | 1 | x | a | 0 | 0 |
| 1 | 1 | x | a | 0 | 0 |
| 2 | 1 | y | b | 3 | 1 |
| 3 | 1 | y | b | 1 | 0 |
| 4 | 2 | z | c | 0 | 0 |
| 5 | 2 | y | b | 1 | 1 |
| 6 | 2 | z | c | 0 | 0 |
| 7 | 2 | z | c | 5 | 1 |
| 8 | 3 | x | a | 0 | 0 |
| 9 | 3 | y | b | 0 | 0 |
| 10 | 3 | y | b | 0 | 0 |
| 11 | 4 | z | c | 1 | 1 |
| 12 | 4 | x | a | 1 | 1 |
| 13 | 4 | x | a | 1 | 0 |
+----+-----+------+------+-------+------+