Tôi đã đọc tệp csv và xoay quanh nó để đi đến cấu trúc sau.Pandas tổng các cột và chia mỗi ô từ giá trị đó
pivoted = df.pivot('user_id', 'group', 'value')
lookup = df.drop_duplicates('user_id')[['user_id', 'group']]
lookup.set_index(['user_id'], inplace=True)
result = pivoted.join(lookup)
result = result.fillna(0)
Mục của kết quả:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 group
user_id
2 33653 2325 916 720 867 187 31 0 6 3 42 56 92 15 l-1
4 18895 414 1116 570 1190 55 92 0 122 23 78 6 4 2 l-2
16 1383 70 27 17 17 1 0 0 0 0 1 0 0 0 l-2
50 396 72 34 5 18 0 0 0 0 0 0 0 0 0 l-3
51 3915 1170 402 832 2791 316 12 5 118 51 32 9 62 27 l-4
Tôi muốn tổng hợp trên cột từ 0 đến cột 13 của mỗi hàng và phân chia mỗi tế bào bằng tổng của hàng đó. Tôi vẫn quen với gấu trúc, Nếu tôi hiểu chính xác, chúng ta nên cố tránh những vòng lặp khi làm những việc như thế này? Vì vậy, làm thế nào tôi có thể làm theo cách này gấu trúc?
tôi t hink như vậy, đi nhiều sudo: '0/sum (0..13), 1/sum (0..13)' cũng 'cột 0' là tên của cột không cần thiết chỉ mục của nó.' –