擅长:python、mysql、java
<p>用<code>pd.get_dummies</code>然后<code>multiply</code>和<code>groupby</code></p>
<pre><code>(pd.get_dummies(df[['cat1', 'cat2']])
.multiply(df.views, axis=0)
.groupby(df.user).sum()
)
</code></pre>
<p>输出:</p>
<pre><code> cat1_A cat1_D cat1_E cat2_B cat2_F
user
12345 1 1 0 1 1
34567 0 0 2 0 2
67890 0 1 1 0 2
</code></pre>