擅长:python、mysql、java
<p>如果您使用pandas,则可以在通过电子邮件将数据帧分组后执行<code>value_counts</code>,然后<code>unstack/pivot</code>将其转换为宽格式:</p>
<pre><code>(df.set_index("email").stack().groupby(level=0).value_counts()
.unstack(level=1).reset_index().fillna(0))
</code></pre>
<p><a href="https://i.stack.imgur.com/3wMBF.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/3wMBF.jpg" alt="enter image description here"/></a></p>
<hr/>
<p>要获得更新的结果,您可以按<code>stack</code>后面的email和val*列进行分组:</p>
<pre><code>(df.set_index("email").stack().groupby(level=[0, 1]).value_counts()
.unstack(level=[1, 2]).fillna(0).sort_index(axis=1))
</code></pre>
<p><a href="https://i.stack.imgur.com/atOEW.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/atOEW.jpg" alt="enter image description here"/></a></p>