这是我的DataFrame的示例
user workflow device location date
A top Mac SF 1/1/19
B left Win SA 1/1/19
A right Mac SF 1/5/19
C left iphone LA 1/7/19
D left pixel BO 1/20/19
C bottom iphone LA 1/21/19
我想将DF转换成这样:
User top bottom left right Mac Win iphone pixel SF SA LA BO
A 1 0 0 1 1 0 0 0 2 0 0 0
B 0 0 1 0 0 1 0 0 0 1 0 0
C 0 1 1 0 0 0 2 0 0 0 2 0
D 0 0 1 0 0 0 0 1 0 0 0 1
使用熊猫如何做到这一点?
答案 0 :(得分:1)
在str.get_dummies
之后使用stack
s=df.set_index('user').stack().str.get_dummies().sum(level=0)
s
BO LA Mac SA SF Win bottom iphone left pixel right top
user
A 0 0 2 0 2 0 0 0 0 0 1 1
B 0 0 0 1 0 1 0 0 1 0 0 0
C 0 2 0 0 0 0 1 2 1 0 0 0
D 1 0 0 0 0 0 0 0 1 1 0 0