Pandas 相同键行(不包括表中的某些列)的平均值

Pandas 相同键行(不包括表中的某些列)的平均值,pandas,Pandas,我有一个表,其中有一部分列作为记录键。 记录键可能有重复项,例如多行可能有相同的键,但值不同。我想将同一关键行的值平均化为一行。但有些列有表示类别的数字,我想从平均值中排除它们,而是选择一个随机值 作为一个例子,考虑该表具有键 K1 < /代码>和 K2 < /代码>,数值 V1 < /代码>和分类int值 ID>代码> < /P> k1 | k2 | v1 | id 1 | 2 | 4 | 100 1 | 3 | 2 | 200 1 | 2 | 8 | 300 1 | 2

我有一个表,其中有一部分列作为记录键。 记录键可能有重复项,例如多行可能有相同的键,但值不同。我想将同一关键行的值平均化为一行。但有些列有表示类别的数字,我想从平均值中排除它们,而是选择一个随机值

作为一个例子,考虑该表具有键<代码> K1 < /代码>和<代码> K2 < /代码>,数值<代码> V1 < /代码>和分类int值<代码> ID>代码> < /P>

k1 | k2 | v1 | id
1  | 2  | 4  | 100
1  | 3  | 2  | 200
1  | 2  | 8  | 300
1  | 2  | 2  | 400
我希望输出是

k1 | k2 | v1 | id
1  | 2  |14/3| 100 (or 300 or 400)
1  | 3  | 2  | 200
目前,我有一个代码来平均相同键列的值:

g = table.groupby(primary_keys)
s = g.sum()
table = s.div(g.count(), axis=0)
但我不知道如何扩展它以排除分类列(比如我知道它们是什么)并为分类选择随机值

df.groupby(['k1','k2']).agg({'v1':'mean','id':lambda x : x.sample(1)})
             v1   id
k1 k2               
1  2   4.666667  100
   3   2.000000  200

4+8+2的平均成绩是多少?@WeNYoBen是的,对不起,错了。。我最初想为同一个键lol创建两行。