【发布时间】:2014-12-19 16:46:26
【问题描述】:
我已经阅读了一个 csv 文件并将其转为以下结构:
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)
部分结果:
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
我想按每行对第 0 列到第 13 列求和,然后将每个单元格除以该行的总和。我还在习惯熊猫;如果我理解正确,我们应该在做这样的事情时尽量避免 for 循环?换句话说,我怎样才能以“熊猫”的方式做到这一点?
【问题讨论】:
-
我想是的,更多的是 sudo:
0/sum(0..13),1/sum(0..13)还有column 0是列的名称,而不是它的索引。`