Python 使用datetime.time进行比较和创建列

Python 使用datetime.time进行比较和创建列,python,pandas,datetime,Python,Pandas,Datetime,我用熊猫已经有一段时间了,我相信这是一个愚蠢的问题 我需要在数据帧中创建一列,该列以datetime.time为条件。如果datetime.time

我用熊猫已经有一段时间了,我相信这是一个愚蠢的问题

我需要在数据帧中创建一列,该列以datetime.time为条件。如果datetime.time<12,则在列中填入“上午”,然后将相同的过程添加到“下午”和“晚上”

import datetime

b['time'] = ['01-01-2000 10:00:00', '01-01-2000 15:00:00', '01-01-2000 21:00:00']

b['time'].dt.time

(output)
1   10:00:00
2   15:00:00
3   21:00:00

b['time'].dt.time < 12 #example

TypeError: can't compare datetime.time to int
导入日期时间
b['time']=['01-01-2000 10:00:00','01-01-2000 15:00:00','01-01-2000 21:00:00']
b['time'].dt.time
(产出)
1   10:00:00
2   15:00:00
3   21:00:00
b['time'].dt.time<12#示例
TypeError:无法将datetime.time与int进行比较
问题是:我无法将datetime.time与int进行比较。如何解决这个问题

非常感谢。

我认为您可以使用或按箱子放置标签:

rng = pd.date_range('2017-04-03', periods=24, freq='H')
df = pd.DataFrame({'Date': rng})  

bins = [0, 5, 13, 17, 25]
labels = ['Morning','Afternoon','Evening','Night']
hours = df['Date'].dt.hour
df['bin'] = pd.cut(hours-5+24 *(hours<5),bins=bins,labels=labels,right=False)

不可能比较时间吗?是否可以添加数据样本和所需输出?添加样本。所需的输出类似于真/假序列。然后使用
b['time'].dt.hour<12
Gosh,我知道这很愚蠢。。。
bins = [-1,4,9,17,21]
labels = ['Night', 'Morning','Afternoon','Evening','Night']
df['bin1']  = np.array(labels)[np.array(bins).searchsorted(hours)-1]                     
print (df)
                  Date        bin       bin1
0  2017-04-03 00:00:00      Night      Night
1  2017-04-03 01:00:00      Night      Night
2  2017-04-03 02:00:00      Night      Night
3  2017-04-03 03:00:00      Night      Night
4  2017-04-03 04:00:00      Night      Night
5  2017-04-03 05:00:00    Morning    Morning
6  2017-04-03 06:00:00    Morning    Morning
7  2017-04-03 07:00:00    Morning    Morning
8  2017-04-03 08:00:00    Morning    Morning
9  2017-04-03 09:00:00    Morning    Morning
10 2017-04-03 10:00:00  Afternoon  Afternoon
11 2017-04-03 11:00:00  Afternoon  Afternoon
12 2017-04-03 12:00:00  Afternoon  Afternoon
13 2017-04-03 13:00:00  Afternoon  Afternoon
14 2017-04-03 14:00:00  Afternoon  Afternoon
15 2017-04-03 15:00:00  Afternoon  Afternoon
16 2017-04-03 16:00:00  Afternoon  Afternoon
17 2017-04-03 17:00:00  Afternoon  Afternoon
18 2017-04-03 18:00:00    Evening    Evening
19 2017-04-03 19:00:00    Evening    Evening
20 2017-04-03 20:00:00    Evening    Evening
21 2017-04-03 21:00:00    Evening    Evening
22 2017-04-03 22:00:00      Night      Night
23 2017-04-03 23:00:00      Night      Night