在pandas数据帧中添加两个时间列?

2024-10-04 01:25:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据:

 time_begin  DRTN_IN_SCND
 16:22:16           439
 16:29:37            53
 16:30:33            85

我想做一个新的专栏,添加time_begin和DRTN_IN_SCND(以秒为单位的持续时间)来创建一个新的时间。在

我试过:

^{pr2}$

如果时间增量(秒=3)但当我更改为时间增量(秒=数据仓库). 我得到以下错误。在

TypeError: unsupported type for timedelta seconds component: Series

有没有人知道如何解决这个问题或者用其他方法来完成我要做的事情?谢谢!在


Tags: 数据intime错误时间单位增量数据仓库
2条回答

问题

您在df['new_time']上使用apply,这是一个系列,lambda中引用的是另一个系列。因此,错误说明您试图将一个时间对象添加到一个series对象中,但它不知道该怎么做。在

解决方案

相反,在dataframe上使用apply。在这种情况下,lambda函数中的x是串联的,您可以通过ix访问每个组件。这是你想要的。在

df['new_time'] = df.apply(lambda x: x.ix['time_begin'] + dt.timedelta(seconds=x.ix['DRTN_IN_SCND']), axis=1)

您必须将DRTN_IN_SCNDtime_begin转换为时间增量如果您想对列进行正确的计算,pandas有to_timedelta这非常方便:

df['DRTN_IN_SCND'] = pd.to_timedelta(df['DRTN_IN_SCND'], unit='s')
df['time_begin'] = pd.to_timedelta(df['time_begin'])
df['new_time'] = df['time_begin'] + df['DRTN_IN_SCND']

这将为您提供新列new_time

^{pr2}$

相关问题 更多 >