为了账号安全,请及时绑定邮箱和手机立即绑定

计算数据框中的日期列

计算数据框中的日期列

largeQ 2022-07-12 15:23:18
我尝试计算这些列。我需要两个新列,一个名为“开始时间”的 = 日期 + 时间一个名为“Endtime”的 = Date + Time + Timedelta我需要它们用于python中的甘特图,问题是,那个时间可能会出现多次。任何想法如何解决这个问题?我从数据框中将它们变红并在此处出现此错误unsupported operand type(s) for +: 'datetime.date' and 'datetime.time'
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

尝试使用pd.to_datetime和pd.to_timedelta:


df['Starttime'] = pd.to_datetime(df['Date'].map(str) + ' ' + df['Time'].map(str))

df['Endtime'] = df['Starttime'] + pd.to_timedelta(df['TimeDelta'])


查看完整回答
反对 回复 2022-07-12
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

首先将dates 和times 转换为字符串Series.astype,然后使用to_datetime,第二列使用to_timedelta:


df = pd.DataFrame({'Date': pd.to_datetime(['06.12.2019','06.12.2019']).date,

                   'Time': pd.to_datetime(['17:20:10','17:20:31']).time,

                   'TimeDelta':['00:00:21','14:31:09']})


df['Starttime'] = pd.to_datetime(df['Date'].astype(str) + ' ' + df['Time'].astype(str))

df['Endtime'] = df['Starttime'] + pd.to_timedelta(df['TimeDelta'])

print (df)

         Date      Time TimeDelta           Starttime             Endtime

0  2019-06-12  17:20:10  00:00:21 2019-06-12 17:20:10 2019-06-12 17:20:31

1  2019-06-12  17:20:31  14:31:09 2019-06-12 17:20:31 2019-06-13 07:51:40


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信