回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个数据集,里面有给潜在客户发邮件的人,还有互相发邮件的人,有时间戳和邮件ID。我想做的是把它汇总成一个数据框,每个人发了多少封邮件,每个人收到了多少封。
下面的dfu是输入的模拟数据集。
df\u out是我想要的输出(我想要它以最高的发送方计数排序,然后是最高的接收计数)。
我尝试过使用groupby和size,并尝试了三种不同的方法(df1、df2和df3)。然而,我甚至不能得到正确的发送计数(如dfïu out)。我该怎么做?下面是python代码。你知道吗</p>
<pre><code>import pandas as pd
df_in = pd.DataFrame({
'sender':['Able Boy','Able Boy','Able Boy','Mark L. Taylor','Mark L. Taylor','Mark L. Taylor','scott kirk','scott kirk','scott kirk','scott kirk'],
'receiver':['Toni Z. Zapata','Mark Angel','Johnny C. Cash','paul a boyd','michelle fam','debbie bradford','Mark Angel','Johnny C. Cash','Able Boy','Mark L. Taylor'],
'timeContact':[911929000000,911929000000,910228000000,911497000000,911497000000,911932000000,914261000000,914267000000,914269000000,914276000000],
'email_ID':['<A34E5R>','<A34E5R>','<B34E5R>','<C34E5R>','<C34E5R>','<C36E5R>','<C36E5A>','<C36E5B>','<C36E5C>','<C36E5D>']
})
print("\ndf_in is:")
print(df_in)
df_out = pd.DataFrame({
'person':['scott kirk','Able Boy','Mark L. Taylor','Mark Angel','Toni Z. Zapata','Johnny C. Cash','paul a boyd','michelle fam','debbie bradford'],
'number_send':[4,2,2,0,0,0,0,0,0],
'number_received':[0,2,1,2,1,1,1,1,1]
})
print()
print("\ndf_out is:")
print(df_out)
df1 = df_in.groupby(['email_ID','sender']).size()
print()
print("\ndf1 is:")
print(df1)
df2 = df_in.groupby(['sender']).size()
print()
print("\ndf2 is:")
print(df2)
df3 = df_in.groupby(['sender','email_ID']).size()
print()
print("\ndf3 is:")
print(df3)
</code></pre>