Python 两只熊猫+;地图+;分组依据(两个变量)和#x2B;计数

Python 两只熊猫+;地图+;分组依据(两个变量)和#x2B;计数,python,pandas,dictionary,pandas-groupby,Python,Pandas,Dictionary,Pandas Groupby,我有两个数据帧:客户机和消息 对于每个客户端,都有多条消息。两者都有日期(我从中提取日期)。这意味着客户的注册日期是他们注册的日期;对于消息,为消息发送的日期 我可以通过以下方式了解每个客户端发送的邮件总数: clients['total'] = clients['ID'].map(messages.groupby(['ID']).counts()) 但是:我怎样才能将其扩展到计算他们注册当天发送的邮件数量,而不是整个期间发送的邮件数量?我试着用两个变量来分组 clients['totalDa

我有两个数据帧:客户机和消息

对于每个客户端,都有多条消息。两者都有日期(我从中提取日期)。这意味着客户的注册日期是他们注册的日期;对于消息,为消息发送的日期

我可以通过以下方式了解每个客户端发送的邮件总数:

clients['total'] = clients['ID'].map(messages.groupby(['ID']).counts())
但是:我怎样才能将其扩展到计算他们注册当天发送的邮件数量,而不是整个期间发送的邮件数量?我试着用两个变量来分组

clients['totalDay1'] = clients['ID'].map(messages.groupby(['ID','Day']).counts())
但是我没有达到我想要的目的,那就是为客户机df增加价值

谢谢大家!!
米格尔

我想需要加入:

s = messages.groupby(['ID','Day']).size().rename('totalDay1')
clients = clients.join(s, on=['ID','Day'])
样本:

messages = pd.DataFrame({'ID':[1,2,3], 'Day':[1,2,2], 'col':[3,4,5]})
clients = pd.DataFrame({'ID':[1,2,5], 'Day':[1,2,2], 'col':[4,5,6]})

s = messages.groupby(['ID','Day']).size().rename('totalDay1')
clients = clients.join(s,  on=['ID','Day'])
print (clients)
   ID  Day  col  totalDay1
0   1    1    4        1.0
1   2    2    5        1.0
2   5    2    6        NaN