Python 如何在pandas中的分组数据帧中的多个列上应用多个自定义函数?
我有一个pandasPython 如何在pandas中的分组数据帧中的多个列上应用多个自定义函数?,python,pandas,Python,Pandas,我有一个pandasDataFrame,它按p\u id分组。 目标是获得一个数据帧,数据显示在“我正在寻找的输出”下。 我已经尝试了一些方法,但我正在努力应用两个自定义聚合函数: 为x\u id应用(列表) “| |”。加入x_name 我怎样才能解决这个问题 输入 | p_id | x_id | x_name | |------|------|--------| | 1 | 4 | Text | | 2 | 4 | Text | | 2 | 5
DataFrame
,它按p\u id
分组。
目标是获得一个数据帧
,数据显示在“我正在寻找的输出”下。
我已经尝试了一些方法,但我正在努力应用两个自定义聚合函数:
为
x\u id应用(列表)
“| |”。加入
x_name
| p_id | x_id | x_name |
|------|------|--------|
| 1 | 4 | Text |
| 2 | 4 | Text |
| 2 | 5 | Text2 |
| 2 | 6 | Text3 |
| 3 | 4 | Text |
| 3 | 7 | Text4 |
我正在寻找的输出
| p_id | x_ids | x_names |
|------|---------|--------------------|
| 1 | [4] | Text |
| 2 | [4,5,6] | Text||Text2||Text3 |
| 3 | [4,7] | Text||Text4 |
你当然可以做到:
df.groupby('pid').agg({'x_id':list, 'x_name':'||'.join})
或者更高级一点的命名agg:
df.groupby('pid').agg(x_ids=('x_id',list),
x_names=('x_name', '||'.join))
完美的我不知道您可以将自定义函数用于
agg
!:)谢谢!!!