<p>您可以使用来自列发送方和接收方的<code>unique</code>值创建列person。然后<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html" rel="nofollow noreferrer">^{<cd2>}</a>此列包含来自发送方和接收方的<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.value_counts.html" rel="nofollow noreferrer">^{<cd3>}</a>。最后<code>fillna</code>和<code>sort_values</code>在参数ascending=False的两列计数上</p>
<pre><code>df_out = pd.DataFrame({'person': pd.np.unique(df_in[['sender','receiver']].values.flatten())})
df_out['number_send'] = df_out.person.map(df_in.drop_duplicates(subset=['sender','email_ID'])
.sender.value_counts())
df_out['number_received'] = df_out.person.map(df_in.receiver.value_counts())
df_out = df_out.fillna(0).sort_values(by=['number_send', 'number_received'], ascending=False)\
.reset_index(drop=True)
print (df_out)
person number_send number_received
0 scott kirk 4.0 0.0
1 Able Boy 2.0 1.0
2 Mark L. Taylor 2.0 1.0
3 Johnny C. Cash 0.0 2.0
4 Mark Angel 0.0 2.0
5 Toni Z. Zapata 0.0 1.0
6 debbie bradford 0.0 1.0
7 michelle fam 0.0 1.0
8 paul a boyd 0.0 1.0
</code></pre>