在pandas dataframe列上执行多个转换

时间:2017-09-18 04:31:29

标签: python pandas dataframe group-by pandas-groupby

我有一个DataFrame如下:

enter image description here

现在我想按用户名分组并转换为新的DataFrame:

enter image description here

我使用Python 2.7或3.6都可以

1 个答案:

答案 0 :(得分:1)

好像你想要agg,而不是transform ......

df = df.groupby('Username')\
         .agg({'Item' : lambda x: x.tolist(), 'Price' : 'sum'})

如果您想要逗号分隔的字词串,则会涉及额外的str.join

df = df.groupby('Username')\
      .agg({'Item' : lambda x: ', '.join(x.tolist()), 'Price' : 'sum'})
df

+------------+---------+-----------+
| Username   |   Price | Item      |
|------------+---------+-----------|
| Johne      |    4500 | Food, Tea |
| Mary       |    1000 | Meat      |
| Peter      |    2850 | Food, Egg |
| Ted        |     750 | CK        |
+------------+---------+-----------+
相关问题