Python:如何合并两个数据框并进行计数?

时间:2020-02-11 13:22:15

标签: python pandas

我有两个数据帧df1df2

df1
       Name           t
0      John   2017-10-05 21:17:14
1      John   2017-10-05 22:05:13
2      John   2017-11-05 21:05:13
3      Sarah  2017-10-05 09:17:14
4      Sarah  2017-11-05 09:17:14


df2
       Name           t
0      John   2017-10-05 11:17:14
1      Sarah  2017-10-05 22:05:13
2      Sarah  2017-11-05 21:05:13
3      Sarah  2017-11-05 19:17:14
4      Sarah  2017-11-05 12:17:14

我想计算每个名字每天出现多少次

df3
       Name       t          count
0      John    2017-10-05      3
1      John    2017-11-05      1
2      Sarah   2017-10-05      2
2      Sarah   2017-11-05      4

1 个答案:

答案 0 :(得分:2)

concatGroupBy.sizeSeries.dt.date一起使用,最后由Series.reset_indexMultiIndex Series参数将DataFrame转换为name:< / p>

df1['t'] = pd.to_datetime(df1['t'])
df2['t'] = pd.to_datetime(df2['t'])

df = pd.concat([df1, df2])
df = df.groupby(['Name', df['t'].dt.date]).size().reset_index(name='count')
print (df)
    Name           t  count
0   John  2017-10-05      3
1   John  2017-11-05      1
2  Sarah  2017-10-05      2
3  Sarah  2017-11-05      4