替换熊猫时间戳中的小时和分钟

时间:2020-11-09 15:52:03

标签: python pandas timestamp

问题:我有以下熊猫数据框。基于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'

我们非常感谢您的帮助!谢谢!

1 个答案:

答案 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