заполнение значений столбцов максимальным значением в пандах - PullRequest
0 голосов
/ 26 августа 2018

У меня есть такие данные:

pd.DataFrame({'code': ['a', 'a', 'a', 'b', 'b', 'c'],
                      'value': [1,2,3, 4, 2, 1] })



+-------+------+-------+
| index | code | value |
+-------+------+-------+
| 0     | a    | 1     |
+-------+------+-------+
| 1     | a    | 2     |
+-------+------+-------+
| 2     | a    | 3     |
+-------+------+-------+
| 3     | b    | 4     |
+-------+------+-------+
| 4     | b    | 2     |
+-------+------+-------+
| 5     | c    | 1     |
+-------+------+-------+

я хочу добавить столбец, содержащий максимальное значение каждого кода:

| index | code | value | max |
|-------|------|-------|-----|
| 0     | a    | 1     | 3   |
| 1     | a    | 2     | 3   |
| 2     | a    | 3     | 3   |
| 3     | b    | 4     | 4   |
| 4     | b    | 2     | 4   |
| 5     | c    | 1     | 1   |

есть ли способ сделать это спанды?

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Вы можете попробовать это тоже.

df["max"] = df.code.apply(lambda i : max(df.loc[df["code"] == i]["value"]))
0 голосов
/ 26 августа 2018

Используйте GroupBy.transform для нового столбца агрегированных значений:

df['max'] = df.groupby('code')['value'].transform('max')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...