使用 pandas 创建具有行信息的类别

我正在使用一个数据库 (xlsx),该数据库告知动物在研究区域内的时间,如下所示:

https://img1.sycdn.imooc.com/6578651e00019cec02050224.jpg

我想将时间分组,挑选时间并将其分类。


24 小时至 6 小时 - 黎明 6 小时至 12 小时 - 上午 12 小时至 18 小时 - 下午 18 小时 - 24 小时 - 夜间


因此,“21:25:00”将是“晚上”,“10:36:00”将是“早晨”,依此类推。


我怎样才能用熊猫做到这一点?我尝试使用与重命名列相同的方法,类似这样。


pamdf.loc[pamdf['Hora em que foram detectados dentro da área de exclusão'].isin( ['24:00:00':'06:00:00' ]), 'Hora em que foram detectados dentro da área de exclusão'] = 'Dawn'


但这没有任何意义,显然也不起作用。我可以使用“pandas.cut”吗?如何?


预先感谢大家,并对英语不好表示歉意。


例子:


Hour  

21:25

10:36

23:17

04:55

21:12

23:58

19:55

20:54

23:01

00:20

18:54


侃侃无极
浏览 120回答 1
1回答

胡子哥哥

你可以这样做:import pandas as pddef convert_to_category(x):    if x in set([i for i in range(1,7)]):        return 'Dawn'    elif x in set([i for i in range(7,13)]):        return 'Morning'    elif x in set([i for i in range(13,19)]):        return 'Afternoon'    else:        return 'Night'df = pd.DataFrame({'time':['21:25:00','10:36:00','23:17:00']})df['period'] = pd.to_datetime(df['time']).dt.hour.apply(lambda x: convert_to_category(x))    time        period0   21:25:00    Night1   10:36:00    Morning2   23:17:00    Night
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python