I want to create a new column in a Pandas DataFrame by evaluating multiple conditions in an if-then-else block.
if events.hour <= 6:
events[\'time_slice\
you can use pd.cut() method in order to categorize your data:
Demo:
In [66]: events = pd.DataFrame(np.random.randint(0, 23, 10), columns=['hour'])
In [67]: events
Out[67]:
hour
0 5
1 17
2 12
3 2
4 20
5 22
6 20
7 11
8 14
9 8
In [71]: events['time_slice'] = pd.cut(events.hour, bins=[-1, 6, 12, 18, 23], labels=['night','morning','afternoon','evening'])
In [72]: events
Out[72]:
hour time_slice
0 5 night
1 17 afternoon
2 12 morning
3 2 night
4 20 evening
5 22 evening
6 20 evening
7 11 morning
8 14 afternoon
9 8 morning