python - Convert time to categorical variable
问题描述
df
Time | Day_of_the_Week
16:24:18 | Sat
17:00:01 | Sun
03:48:12 | Mon
Expected Output:
df
Time | Day_of_the_Week | Time_Category
16:24:18 | Sat | Afternoon
17:00:01 | Sun | Evening
03:48:12 | Mon | Midnight
df['Time'][1] returns a "datetime.time"
The following code returns an invalid syntax.
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'
解决方案
We can try pd.cut
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
推荐阅读
- c++ - 为什么不返回 NULL 会破坏函数?
- android - 离子 - 访问被拒绝找到属性“vendor.camera.aux.packagelist”
- class - 从另一个类颤振 setState
- mongodb - 仅当所有匹配条件时才返回所有文档
- ag-grid-angular - 角度 ag-grid 如何设置标题样式
- javascript - 为子组件(useRef)反应滑轮事件?
- python - 带有 chrome 驱动程序的 Selenium python,无法禁用图像加载
- php - 如何将php版本更改为7.0.33?
- javascript - VueJs 在数组中渲染图像对象
- laravel - 从组中检索所有用户 [laravel]