对 pandas 数据框列执行多项转换
Perform multiple transformations on pandas dataframe columns
我有一个 DataFrame 如下:
现在我想按用户名分组并转换为新的 DataFrame 为:
我使用 Python 2.7 或 3.6 都可以
您似乎想要 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 |
+------------+---------+-----------+
我有一个 DataFrame 如下:
现在我想按用户名分组并转换为新的 DataFrame 为:
我使用 Python 2.7 或 3.6 都可以
您似乎想要 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 |
+------------+---------+-----------+