首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对两个datetime列求和

对两个datetime列求和
EN

Stack Overflow用户
提问于 2019-09-09 11:25:45
回答 2查看 2K关注 0票数 2

我有一个包含两列的数据框,例如

代码语言:javascript
复制
A                B 
00:01:05         2018-10-10 23:58:10

我想得到第三列C,它是A+B的和

代码语言:javascript
复制
A                B                             C
00:01:05         2018-10-10 23:58:10           2018-10-10 23:59:15

如果我这样做了:

代码语言:javascript
复制
df['C']= df['A'] + df['B']

我得到了

代码语言:javascript
复制
cannot add DatetimeArray and DatetimeArray
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-09 13:09:49

这是您的样本数据帧,

代码语言:javascript
复制
sample = pd.DataFrame()

sample['A'] = ['00:01:05']
sample['B'] = ['2018-10-10 23:58:10']

将列B转换为pd.Timstamp,将A转换为pd.Timedelta,如下所示:

代码语言:javascript
复制
sample['B'] = pd.to_datetime(sample['B'])
sample['A'] = pd.to_timedelta(sample['A'], unit='m')

然后正常添加列,

代码语言:javascript
复制
sample['C'] = sample['B'] + sample['A']

    A                    B                     C
0   00:01:05    2018-10-10 23:58:10     2018-10-10 23:59:15
票数 2
EN

Stack Overflow用户

发布于 2019-09-09 13:11:31

通过to_timedelta将列A转换为时间增量,如有必要,将列B转换为to_datetime

代码语言:javascript
复制
df = pd.DataFrame({'A':['00:01:05'],
                   'B':['2018-10-10 23:58:10']})

df['C'] = pd.to_timedelta(df['A']) + pd.to_datetime(df['B'])
print (df)
          A                    B                   C
0  00:01:05  2018-10-10 23:58:10 2018-10-10 23:59:15

如果列A包含python时间:

代码语言:javascript
复制
df['C'] = pd.to_timedelta(df['A'].astype(str)) + pd.to_datetime(df['B'])
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57847521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档