Цель состоит в том, чтобы назначить 1s любому индексу в группе, который является более высоким значением, чем из -за того, что извлечен из idxmax () < /p>
import numpy as np
import pandas as pd
df = pd.DataFrame({'id':[1, 1, 1, 2, 2, 2, 3, 3, 3], 'val':[1,np.NaN, 0, np.NaN, 1, 0, 1, 0, 0]})
id val
0 1 1.0
1 1 NaN
2 1 0.0
3 2 NaN
4 2 1.0
5 2 0.0
6 3 1.0
7 3 0.0
8 3 0.0
< /code>
Мы можем использовать idxmax (), чтобы получить значения индекса для наивысшего значения в каждой группе < /p>
test = df.groupby('id')['val'].idxmax()
id
1 0
2 4
3 6
< /code>
Цель состоит в том, чтобы преобразовать данные, чтобы выглядеть как таковые (что состоит в том, что каждое значение в группе, которое имеет более высокий индекс, чем то, что из idxmax () назначается 1. < /p>
id val
0 1 1.0
1 1 1.0
2 1 1.0
3 2 NaN
4 2 1.0
5 2 1.0
6 3 1.0
7 3 1.0
8 3 1.0
< /code>
Этот вопрос не обязательно должен быть сделан с помощью idxmax (). Открыт для любых предложений.
Подробнее здесь: https://stackoverflow.com/questions/724 ... each-group
Замените каждое значение после максимального значения на 1 в каждой группе ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сортировать все строки с определенным значением в группе до последнего места в группе.
Anonymous » » в форуме Python - 0 Ответы
- 42 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Группируйте значения массива 1d по префиксу и объединяйте суффиксы в каждой группе.
Anonymous » » в форуме Php - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-