我有一个日期时间要重采样到20分钟的数据框,并为所有组“名称”计数“行”列中给出的唯一值的数量。
name Date trip
0 4 2019-08-22 00:44:51 1
1 4 2019-08-22 00:45:40 1
2 4 2019-08-22 01:45:52 2
3 4 2019-08-22 01:44:51 2
4 4 2019-08-22 01:45:40 2
5 5 2019-08-22 01:45:52 3
6 5 2019-08-22 01:45:59 3
所需的输出如下:
Date Trip count
2019-08-22 00:40:00 1
2019-08-22 01:00:00 0
2019-08-22 01:20:00 0
2019-08-22 01:40:00 2
2019-08-22 02:00:00 0
因此行程为1,因为在00:40:00到01:00之间只有1次行程(从name = 4开始)。 行程为2,因为在01:40:00和02:00之间有2次行程(从name = 4和name = 5)。 行程计数为0,否则
答案 0 :(得分:1)
尝试一下:
DataFrame.groupby('Date').resample('20T').trip.nunique()
参考:
答案 1 :(得分:1)
您想要set_index
和DataFrame.resample
中的nunique
和trip
:
# df['Date'] = pd.to_datetime(df['Date'], infer_datetime_format=True)
dfn = df.set_index('Date').resample('20T')['trip'].nunique().reset_index(name='Trip count')
Date Trip count
0 2019-08-22 00:40:00 1
1 2019-08-22 01:00:00 0
2 2019-08-22 01:20:00 0
3 2019-08-22 01:40:00 2