Подсчет указанных c значений в каждом фрагменте данных - PullRequest
0 голосов
/ 05 февраля 2020

Я работаю над набором данных, в котором я разделил набор данных на порции (каждые 30 строк состоят из порций). То, что я хочу, это в столбце drate, если значения (drate> 1,5) увеличивают счетчик. После выполнения каждого куска данных (например, 30 строк) он должен дать мне значение счетчика. Вот пример данных для 2 блоков:

          u1   u2  drate
movieId                 
2        4.0  4.5    0.5
6        4.0  4.5    0.5
10       3.0  4.5    1.5
47       4.0  5.0    1.0
50       1.0  5.0    4.0
104      4.0  5.0    1.0
110      5.0  5.0    0.0
150      4.0  3.0    1.0
153      3.0  1.5    1.5
163      3.0  5.0    2.0
165      3.0  5.0    2.0
185      3.0  3.5    0.5
231      3.0  5.0    2.0
293      3.0  5.0    2.0
296      2.0  5.0    3.0
316      5.0  4.0    1.0
318      5.0  4.5    0.5
333      5.0  5.0    0.0
356      5.0  4.5    0.5
364      5.0  4.5    0.5
367      4.0  3.0    1.0
377      5.0  5.0    0.0
380      4.0  4.5    0.5
457      5.0  4.5    0.5
480      5.0  5.0    0.0
500      5.0  5.0    0.0
588      5.0  4.5    0.5
589      3.0  5.0    2.0
592      3.0  4.5    1.5
593      4.0  4.5    0.5
          u1   u2  drate
movieId                 
1        4.0  2.5    1.5
3        4.0  2.0    2.0
32       3.0  3.5    0.5
63       3.0  0.5    2.5
65       5.0  2.0    3.0
88       5.0  2.5    2.5
95       3.0  2.0    1.0
104      4.0  3.0    1.0
141      3.0  3.0    0.0
260      4.0  3.5    0.5
648      4.0  3.5    0.5
653      4.0  3.5    0.5
661      3.0  3.0    0.0
673      5.0  3.0    2.0
694      3.0  3.0    0.0
708      3.0  2.0    1.0
719      3.0  1.0    2.0
724      3.0  3.0    0.0
733      5.0  4.0    1.0
736      4.0  3.0    1.0
737      5.0  0.5    4.5
743      4.0  1.5    2.5
762      5.0  2.0    3.0
778      2.0  3.0    1.0
780      5.0  3.0    2.0
782      5.0  2.5    2.5
784      3.0  3.0    0.0
785      5.0  2.5    2.5
786      5.0  3.0    2.0
788      5.0  2.5    2.5

Вот код:

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))

def finding_rating(data):


    for chunk in chunker(data,usersLength):

        r = chunk.pivot(index="movieId",columns="userId")
        r.columns = ["u1","u2"]                                                                                                

        r["drate"] = r.u1.sub(r.u2).abs()
        print(r)

...