我有两个数据帧df1
和df2
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
答案 0 :(得分:2)
将concat
与GroupBy.size
和Series.dt.date
一起使用,最后由Series.reset_index
用MultiIndex 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