Предполагая, что существует кадр данных pandas со строками, содержащими некоторые сгруппированные данные, которые отсортированы (все группы значений для данного имени появляются рядом друг с другом), мы хотели бы ввести новый вычисляемый столбец, который назначаетзначения в зависимости от значений некоторого столбца.Если первое значение равно нулю, то все значения для группы получают первое ненулевое значение или nan, если такого значения нет.В противном случае, если первое значение ненулевое, назначается фиксированное значение, например -1
.
Пример кадра входных данных:
name value
0 a 0
1 a 0
2 a 6
3 a 8
4 b 0
5 b 0
6 c 5
7 c 7
Пример кадра выходных данных сcalc
создан столбец.
name value calc
0 a 0 6
1 a 0 6
2 a 6 6
3 a 8 6
4 b 0 nan
5 b 0 nan
6 c 5 -1
7 c 7 -1
Подход, о котором я думал, заключался в создании таблицы поиска первых ненулевых значений каждой группы, поэтому для приведенного выше примера это будет:
value
a 6
c 5
Затем выполните итерацию фрейма входных данных и составьте список значений в соответствии с приведенной выше логикой, которая затем будет назначена новому столбцу.