Я немного запутался с for-l oop, и любая помощь приветствуется. Я использую данные MovieLens и мне нужно получить фрейм с пользователями и их непросмотренными фильмами.
Я ожидаю этот фрагмент кода на каждой итерации: 1. взять полный (test_data), вернуть фильмы, просмотренные только другими пользователями, 2. удалить дубликаты и получить только уникальный идентификатор movieId, 3. сбросить userId для пользователя 4. concatenate предыдущий пустой (emp) с not_watched пользователем:
users = [469, 64]
emp = pd.DataFrame(columns = ['userId','movieId'])
for user in users:
not_watched = test_data[test_data.loc[:,'userId'] != user]
not_watched = not_watched.drop_duplicates(subset = 'movieId')
not_watched.loc[:,'userId'] = user
not_watched_full = pd.concat([emp,not_watched], ignore_index=True)
not_watched_full
Тем не менее, я получаю только последний пользователь из-l oop:
userId movieId
0 64 2599
1 64 542
2 64 1097
3 64 608
4 64 2947
... ... ...
93 64 59315
94 64 647
95 64 44191
96 64 694
97 64 68659
Вот данные:
test_data = pd.DataFrame({'userId': {72780: 469,
9440: 64,
33110: 226,
3022: 20,
18757: 120,
48481: 313,
69399: 448,
81100: 514,
51335: 331,
39729: 274,
47271: 307,
21467: 140,
6588: 45,
2048: 18,
39226: 273,
89097: 577,
1258: 10,
28250: 195,
8957: 62,
29339: 201,
25128: 177,
94682: 599,
89360: 580,
98993: 608,
29890: 204,
37545: 253,
62339: 414,
46629: 306,
48214: 312,
40537: 274,
31978: 219,
1715: 17,
42635: 288,
13879: 89,
43387: 290,
64077: 414,
84183: 537,
88107: 567,
56081: 370,
49114: 318,
4875: 30,
23806: 165,
53965: 356,
25765: 177,
56517: 375,
21152: 140,
60610: 391,
99470: 608,
4765: 29,
36035: 246,
54536: 358,
74034: 474,
73076: 473,
14152: 91,
96737: 603,
818: 6,
4769: 29,
11998: 73,
97057: 604,
66703: 429,
95352: 600,
69066: 448,
97683: 606,
97667: 606,
27328: 186,
58059: 380,
56469: 374,
98000: 606,
94890: 599,
65981: 425,
67978: 438,
31876: 219,
72029: 463,
36711: 249,
75164: 474,
37300: 249,
55056: 365,
95101: 600,
82790: 525,
52738: 346,
1433: 14,
3168: 20,
92199: 597,
11287: 68,
7091: 49,
16336: 105,
76603: 480,
6162: 42,
56993: 380,
42304: 288,
12364: 76,
81816: 517,
56622: 376,
2402: 19,
83677: 534,
3460: 21,
263: 3,
67344: 435,
84616: 544,
11467: 68},
'movieId': {72780: 2599,
9440: 47,
33110: 542,
3022: 1097,
18757: 608,
48481: 2947,
69399: 4866,
81100: 440,
51335: 91529,
39729: 3016,
47271: 4602,
21467: 4369,
6588: 1196,
2048: 26614,
39226: 608,
89097: 1094,
1258: 140110,
28250: 4020,
8957: 53125,
29339: 2012,
25128: 1962,
94682: 61240,
89360: 587,
98993: 2021,
29890: 67295,
37545: 44555,
62339: 94,
46629: 5618,
48214: 5219,
40537: 74795,
31978: 45666,
1715: 1263,
42635: 2664,
13879: 96935,
43387: 2618,
64077: 6153,
84183: 53322,
88107: 139385,
56081: 33794,
49114: 1645,
4875: 112852,
23806: 858,
53965: 3421,
25765: 97921,
56517: 2002,
21152: 569,
60610: 2028,
99470: 32029,
4765: 150,
36035: 3910,
54536: 66203,
74034: 3272,
73076: 4975,
14152: 163,
96737: 2739,
818: 628,
4769: 316,
11998: 116823,
97057: 62,
66703: 329,
95352: 1639,
69066: 2616,
97683: 1949,
97667: 1809,
27328: 593,
58059: 161131,
56469: 185,
98000: 4482,
94890: 96610,
65981: 1210,
67978: 5443,
31876: 6539,
72029: 7320,
36711: 5903,
75164: 49280,
37300: 110102,
55056: 81591,
95101: 1,
82790: 4016,
52738: 714,
1433: 784,
3168: 4848,
92199: 357,
11287: 45950,
7091: 110,
16336: 3535,
76603: 3624,
6162: 2713,
56993: 919,
42304: 1225,
12364: 57669,
81816: 40339,
56622: 2916,
2402: 627,
83677: 2628,
3460: 59315,
263: 647,
67344: 44191,
84616: 694,
11467: 68659}})