您可以按照詞典的詞典過濾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