用熊猫中的最大值填充列值

时间:2018-08-26 07:39:38

标签: python pandas

我有一些这样的数据:

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 :(得分:1)

GroupBy.transform用于汇总值的新列:

df['max'] = df.groupby('code')['value'].transform('max')

答案 1 :(得分:1)

您也可以尝试此操作。

df["max"] = df.code.apply(lambda i : max(df.loc[df["code"] == i]["value"]))