Python/Pandas-在时间列(ex 7:00am)中添加一个带有浮动的小时列(ex 3.30)

Python/Pandas-在时间列(ex 7:00am)中添加一个带有浮动的小时列(ex 3.30),python,pandas,numpy,time,Python,Pandas,Numpy,Time,我有一个数据集,其中有两列我想合并,一列有表示小时/分钟的浮动,另一列有一个开始时间,如上午7:00。我还从正则表达式中提取了数据,因此“小时”列有一个选项卡空间指示器,如\t: Hours - Start Time \t3.30 7:00am \t1.0 7:00am \t2.30 7:30am 我试图制作第三列,其中以小时/分钟格式添加浮动,以创建新时间: Desired Output: Hours - Start Time - New Time \t3.30

我有一个数据集,其中有两列我想合并,一列有表示小时/分钟的浮动,另一列有一个开始时间,如上午7:00。我还从正则表达式中提取了数据,因此“小时”列有一个选项卡空间指示器,如\t:

Hours - Start Time
\t3.30    7:00am
\t1.0     7:00am
\t2.30    7:30am
我试图制作第三列,其中以小时/分钟格式添加浮动,以创建新时间:

Desired Output:

Hours - Start Time - New Time
\t3.30     7:00am     10:30am    
\t1.0      7:00am      8:00am
\t2.30     7:30am     10:00am
我该怎么做呢?我尝试了一些方法,例如使用DateTime和Time Delta将小时列转换为小时/分钟,但遇到问题,我发现这可能是由于表格空间(\t)造成的。在尝试移除带有re的组件时,我也被卡住了。感谢任何能提供帮助的人。

试试以下方法:

import dateutil
import pandas as pd
df['Hours'] = df.Hours.replace(r'.*(\d+)\.(\d+)', r'\1:\2', regex=True)
df['New Time'] = df.apply(lambda x: dateutil.parser.parse(x['Start Time']) + datetime.timedelta(hours=int(x.Hours.split(':')[0]), minutes=int(x.Hours.split(':')[1])), axis=1)
df['New Time'] = df['New Time'].apply(lambda x: datetime.datetime.fromtimestamp(datetime.datetime.timestamp(x)).strftime('%I:%M%p'))
输出:

  Hours Start Time New Time
0  3:30     7:00am  10:30AM
1   1:0     7:00am  08:00AM
2  2:30     7:30am  10:00AM

对你们来说,我用我的数据集尝试了这一点,不可否认,我还有其他行的数据,我的“开始时间”列是其中的第11行或第12行。当我尝试应用您的代码时,我遇到了一个错误:
keyrorm:(“开始时间”,“发生在索引0上”)
关于导致它的原因,列的索引有问题吗?谢谢你的帮助。@slim,吉姆,你知道它的线路故障吗?也许你可以把它们添加到问题中,我可以看一下