我正在尝试分配一个零(如果该用户购买了特定商品)。以下是使用的数据集。我在使用假人时得到'['括号。
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(','))
用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句