如果该用户购买了特定商品,我会尝试分配一个或零。以下是使用的数据集。当我使用假人时,我得到'['括号。
DF:
user items
A [111,333,444]
B [333, 444, 555]
C [555, 111, 333]
D [222,333, 333,333]
E [111,333,444,555]
F [222,555,111]
输出:
[111 222 [333 444 [555
A 1 0 1 1 0
B 0 0 1 1 1
C 1 0 1 0 1
D 0 1 1 0 0
E 1 0 1 1 1
F 1 1 0 0 1
代码:
(df.set_index('user')['items'].str.get_dummies(','))
答案 0 :(得分:1)
使用set_index
+ get_dummies
作为指标,并按stack
+ reset_index
重新整理:
df = (df.set_index('user')['items']
.str.get_dummies(',')
.stack()
.reset_index(name='Y/N')
.rename(columns={'level_1':'item'}))
print (df)
user item Y/N
0 A 111 1
1 A 222 0
2 A 333 1
3 A 444 1
4 A 555 0
5 B 111 0
6 B 222 0
7 B 333 1
8 B 444 1
9 B 555 1
10 C 111 1
11 C 222 0
12 C 333 1
13 C 444 0
14 C 555 1
15 D 111 0
16 D 222 1
17 D 333 1
18 D 444 0
19 D 555 0
20 E 111 1
21 E 222 0
22 E 333 1
23 E 444 1
24 E 555 1
25 F 111 1
26 F 222 1
27 F 333 0
28 F 444 0
29 F 555 1
<强>详细强>:
print (df.set_index('user')['items'].str.get_dummies(','))
111 222 333 444 555
user
A 1 0 1 1 0
B 0 0 1 1 1
C 1 0 1 0 1
D 0 1 1 0 0
E 1 0 1 1 1
F 1 1 0 0 1