Python 将时间转换为分类变量

Python 将时间转换为分类变量,python,python-3.x,regex,pandas,datetime,Python,Python 3.x,Regex,Pandas,Datetime,预期产出: df Time | Day_of_the_Week 16:24:18 | Sat 17:00:01 | Sun 03:48:12 | Mon df['Time'][1]返回一个“datetime.Time” 以下代码返回无效语法 df Time | Day_of_the_Week | Time_Category 16:24:18 | Sat | Afternoon 17:00:01 | Sun

预期产出:

df 
Time      | Day_of_the_Week 
16:24:18  | Sat
17:00:01  | Sun
03:48:12  | Mon
df['Time'][1]返回一个“datetime.Time”

以下代码返回无效语法

df 
Time      | Day_of_the_Week | Time_Category 
16:24:18  | Sat             |    Afternoon
17:00:01  | Sun             |    Evening
03:48:12  | Mon             |    Midnight

我们可以尝试
pd.cut

for a in df:
    if df['Time'] > 17:00:00:
         df['Time_Category'] == 'Evening'
    elif df['Time'] > '12:00:00':
         df['Time_Category'] == 'Afternoon'
    elif df['Time'] > '04:00:00':
         df['Time_Category'] == 'Morning'
    else:
        df['Time_Category'] == 'Midnight'
我得到了一个“TypeError:”@Luc df.Time=pd.to_timedelta(df.Time)
s = pd.cut(df.Time, pd.to_timedelta(['04:00:00','12:00:00','17:00:00','23:59:59']),
          labels=['Morning','Afternoon','Evening']).astype(str).replace('nan','Midnight')
Out[43]: 
0    Afternoon
1      Evening
2     Midnight
Name: Time, dtype: object
df['Time_category'] = s