使用多个键按多列分组

时间:2016-12-16 05:28:25

标签: python pandas dataframe

这是我的dataframe-

的结构
Key1 Key2 Value1 Value2
A    Alpha 16    12345
B    Beta  12    123
A    Alpha 15    1456
A    Beta  14    12345

我必须为Key 1和Key 2的独特组合提供Value 1和Value 2基础。我希望我的决赛桌如下:

Key1 Key2  Value1    Value2
A    Alpha {16,15}   {12345,1456}
B    Beta  {12}      {123}
A    Beta  {14}      {12345}

请建议一个代码。非常感谢。编码级别 - 8天大。

1 个答案:

答案 0 :(得分:1)

您必须编写自己的自定义聚合函数。每个不是分组列的系列都会传递agg并返回单个值。在这里,我们使用set作为聚合器。

df.groupby(['Key1', 'Key2']).agg(lambda x: set(x.values))

  Key1   Key2    Value1         Value2
0    A  Alpha  {16, 15}  {1456, 12345}
1    A   Beta      {14}        {12345}
2    B   Beta      {12}          {123}