擅长:python、mysql、java
<p>我只能想到用for循环拆分它,然后用<code>pivot</code>逐个执行<code>concat</code></p>
<pre><code>l = ['cat1', 'cat2']
s = pd.concat([df.pivot_table(index='user', columns=x, values='views',aggfunc='first') for x in l], axis=1, keys=l).fillna(0)
s.columns=s.columns.map('_'.join)
s
Out[392]:
cat1_A cat1_D cat1_E cat2_B cat2_F
user
12345 1.0 1.0 0.0 1.0 1.0
34567 0.0 0.0 2.0 0.0 2.0
67890 0.0 1.0 1.0 0.0 1.0
</code></pre>