通过在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_timedelta
和T
几分钟:
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来添加时间列的主要内容,如果未能解决你的问题,请参考以下文章
如何在转换 timedelta 变量时消除 pandas 中的错误?