擅长:python、mysql、java
<p>另一个带有<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.crosstab.html" rel="nofollow">^{<cd1>}</a>的解决方案:</p>
<pre><code>df = pd.crosstab(df.book, df.person)
print (df.dot(df.T))
book dracula frankenstein rebecca
book
dracula 3 2 1
frankenstein 2 2 0
rebecca 1 0 1
</code></pre>
<p>或含有<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html" rel="nofollow">^{<cd2>}</a>和<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.unstack.html" rel="nofollow">^{<cd3>}</a>的溶液:</p>
<pre><code>df = df.groupby(['book','person'])['person'].size().unstack().fillna(0).astype(int)
print (df.dot(df.T))
book dracula frankenstein rebecca
book
dracula 3 2 1
frankenstein 2 2 0
rebecca 1 0 1
</code></pre>