按日期,类别和客户对客户订单进行一次热编码结果分组

时间:2017-06-21 18:47:40

标签: python pandas

我有一个包含不同类别(A-F)客户订单的数据框。一个表示从此类别购买,零表示没有。现在我想用1和0编码表明每个类别的购买是按每天和每个客户进行的。

YEAR  MONTH DAY A   B   C   D   E   F   Customer
2007    1   1   1   0   0   0   0   0   5000    
2007    1   1   1   0   0   0   0   0   5000    
2007    1   1   0   1   0   0   0   0   5000    
2007    1   2   0   1   0   0   0   0   5000    
2007    1   2   0   0   1   0   0   0   5000

输出应该如下所示:

 YEAR  MONTH DAY  A     B   C   D   E   F   Customer
 2007   1     1   1     1   0   0   0   0   5000    

我一直在尝试使用pundas build in“groupby”来解决这个问题,但是我无法得到正确的结果。谁知道如何解决这个问题?

非常感谢!

1 个答案:

答案 0 :(得分:1)

我认为您需要groupby并汇总max

let thing: EnumLikeObject = EnumLikeObject.Foo

如果需要相同的列顺序添加DataFrame.reindex_axis

cols = ['YEAR','MONTH','DAY','Customer']
df = df.groupby(cols, as_index=False).max()
print (df)
   YEAR  MONTH  DAY  Customer  A  B  C  D  E  F
0  2007      1    1      5000  1  1  0  0  0  0
1  2007      1    2      5000  0  1  1  0  0  0