Evaluating multiple conditions in if-then-else block in a Pandas DataFrame

前端 未结 3 1118
遥遥无期
遥遥无期 2021-01-22 02:17

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\         


        
3条回答
  •  情深已故
    2021-01-22 03:00

    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
    

提交回复
热议问题