我有一些这样的数据:
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 |
+-------+------+-------+
Run Code Online (Sandbox Code Playgroud)
我想添加一个包含每个代码最大值的列:
| 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 |
Run Code Online (Sandbox Code Playgroud)
有没有办法用熊猫做到这一点?
用于GroupBy.transform
新的聚合值列:
df['max'] = df.groupby('code')['value'].transform('max')
Run Code Online (Sandbox Code Playgroud)