通过在pandas中添加timedelta来添加时间列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过在pandas中添加timedelta来添加时间列相关的知识,希望对你有一定的参考价值。

我有一个pandas数据帧df:

id    value     mins
1      a         12.4
2      u         14.2
3      i         16.2
3      g         17.0

我有一个datetime.datetime变量:

current_time = datetime.datetime(2018, 1, 2, 14, 0, 34, 628481)

我想在我的df 'total_time'中添加新列,以便每行在current_time中添加delta值mins。

id    value     mins        total_time
1      a         12.4   current_time+timedelta(minutes = 12.4)
2      u         14.2            and
3      i         16.2            so
3      g         17.0            on... for every row

我试过了:

df['total_time' = current_time+timedelta(minutes = df['mins'].item())

但是我收到了一个错误:

can only convert an array of size 1 to a Python scalar

有没有其他方法这样做?

我正在使用datetime.datetime包

答案

我想你需要to_timedeltaT几分钟:

df['total_time'] = current_time + pd.to_timedelta(df['mins'], unit='T')
print (df)
   id value  mins                 total_time
0   1     a  12.4 2018-01-02 14:12:58.628481
1   2     u  14.2 2018-01-02 14:14:46.628481
2   3     i  16.2 2018-01-02 14:16:46.628481
3   3     g  17.0 2018-01-02 14:17:34.628481

详情:

print (pd.to_timedelta(df['mins'], unit='T'))
0   00:12:24
1   00:14:12
2   00:16:12
3   00:17:00
Name: mins, dtype: timedelta64[ns]

以上是关于通过在pandas中添加timedelta来添加时间列的主要内容,如果未能解决你的问题,请参考以下文章

查询pandas中的timedelta列,过滤行

如何在转换 timedelta 变量时消除 pandas 中的错误?

在 pandas df 中查找 timedelta 对象的均值和标准差

Pandas | 22 时间差

将 timedelta 格式化为字符串

在 Pandas 中绘制 TimeDeltas