您可以按照词典的词典过滤DataFrames
的list
和loc
的列表理解进行过滤。
末concat
他们一个:
print (df)
A B C
2015-08-08 16:00:00 1 2 3
2015-08-09 13:00:08 4 5 6
2015-08-09 13:00:10 4 5 7
d = {'2015-08-08':['16:00:00', '16:00:10'],'2015-08-09':['13:00:08', '13:00:20']}
df1 = pd.concat([df.loc[k + ' ' + v[0] : k + ' ' + v[1]] for k, v in d.items()])
print (df1)
A B C
2015-08-09 13:00:08 4 5 6
2015-08-09 13:00:10 4 5 7
2015-08-08 16:00:00 1 2 3
与boolean indexing
另一种解决方案:
df1 = pd.concat([df[(df.index >= k + ' ' + v[0]) &
(df.index <= k + ' ' + v[1])] for k, v in d.items()])
print (df1)
A B C
2015-08-09 13:00:08 4 5 6
2015-08-09 13:00:10 4 5 7
2015-08-08 16:00:00 1 2 3
我认为所有你需要的是str.split ... – KingJohnno
是否每个单独的约会对象有不同的时间范围,还是有范围的模式? (例如星期六,范围是上午8点到上午10点等) – payne
没有明确的模式。它根据统计数据计算(每天) – user3142067