У меня есть этот фреймворк:
ID X1 X2 Y
A 11 47 0
A 11 87 0
A 56 33 0
A 92 72 1
A 83 34 0
A 34 31 0
B 88 62 1
B 28 71 0
B 95 28 0
B 92 87 1
B 91 45 0
C 46 59 0
C 60 68 1
C 67 78 0
C 26 26 0
C 13 77 0
D 40 95 0
D 25 26 1
D 93 31 0
D 71 67 0
D 91 24 1
D 80 19 0
D 44 49 0
D 41 84 1
E 38 10 0
F 23 75 1
G 46 58 1
G 44 52 0
Я хочу присвоить значение 1
до того, как Y
станет равным 1
, только в первый раз. В противном случае 0
.
«В противном случае» означает, что Y
уже было (или равно) равно 1
.
- Примечание: его следует применять для каждого
ID
отдельно.
Ожидаемый результат:
ID X1 X2 Y before
A 11 47 0 1
A 11 87 0 1
A 56 33 0 1
A 92 72 1 0
A 83 34 0 0
A 34 31 0 0
B 88 62 1 0
B 28 71 0 0
B 95 28 0 0
B 92 87 1 0
B 91 45 0 0
C 46 59 0 1
C 60 68 1 0
C 67 78 0 0
C 26 26 0 0
C 13 77 0 0
D 40 95 0 1
D 25 26 1 0
D 93 31 0 0
D 71 67 0 0
D 91 24 1 0
D 80 19 0 0
D 44 49 0 0
D 41 84 1 0
E 38 10 0 1
F 23 75 1 0
G 46 58 1 0
G 44 52 0 0
0
qwerty
22 Мар 2020 в 21:15
В чем именно проблема? Вы что-нибудь пробовали, изучали? См. Как задать вопрос, справочный центр.
– AMC
2 Май 2020 в 00:35
1 ответ
Лучший ответ
IIUC
df['New']=df.groupby('ID').Y.cumsum().eq(0).astype(int)
df
ID X1 X2 Y New
0 A 11 47 0 1
1 A 11 87 0 1
2 A 56 33 0 1
3 A 92 72 1 0
4 A 83 34 0 0
5 A 34 31 0 0
6 B 88 62 1 0
7 B 28 71 0 0
8 B 95 28 0 0
9 B 92 87 1 0
10 B 91 45 0 0
11 C 46 59 0 1
12 C 60 68 1 0
13 C 67 78 0 0
14 C 26 26 0 0
15 C 13 77 0 0
16 D 40 95 0 1
17 D 25 26 1 0
18 D 93 31 0 0
19 D 71 67 0 0
20 D 91 24 1 0
21 D 80 19 0 0
22 D 44 49 0 0
23 D 41 84 1 0
24 E 38 10 0 1
25 F 23 75 1 0
26 G 46 58 1 0
27 G 44 52 0 0
5
BENY
22 Мар 2020 в 21:23
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.