问题:我有以下熊猫数据框。基于some_time,我想用t_hour和t_min替换小时和分钟,以便获得target_time。
some_time target_time t_hour t_min
0 2020-09-01 19:00:58.0000 2020-09-01 20:00:00.0000 20 00
1 2020-10-31 14:44:00.0000 2020-10-31 17:45:00.0000 17 45
尝试:
data['target_time'] = data['start_time'].replace(hour=data['t_hour'],minute=data['t_min'], second=0))
没有解决
错误:
TypeError: replace() got an unexpected keyword argument 'hour'
我们非常感谢您的帮助!谢谢!
答案 0 :(得分:0)
我可以自由地使示例更具说明性;给定像这样的数据框
data
start_time target_time t_hour t_min
0 2020-09-01 19:00:58 2020-09-01 20 0
1 2020-10-31 14:44:00 2020-10-31 17 45
首先确保将datetime列全部转换为dtype datetime [64]。然后,您可以应用自定义功能来实现自己的目标,例如
def insert_time(row):
return row['start_time'].replace(hour=row['t_hour'], minute=row['t_min'], second=0)
data['target_time'] = data.apply(lambda r: insert_time(r), axis=1)
这会给你
data
start_time target_time t_hour t_min
0 2020-09-01 19:00:58 2020-09-01 20:00:00 20 0
1 2020-10-31 14:44:00 2020-10-31 17:45:00 17 45