Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pandas中的分组数据帧中的多个列上应用多个自定义函数?_Python_Pandas - Fatal编程技术网

Python 如何在pandas中的分组数据帧中的多个列上应用多个自定义函数?

Python 如何在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

我有一个pandas
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
!:)谢谢!!!