給定一個固定的日期時間'2019-01-15 7:00:00',目標是根據列下的偏移值創建一個新的資料時間(offset, '') 。偏移值的單位是second。
列中給出了預期的輸出 time
(offset,'' ) time
0 0 2019-01-15 7:00:00
1 20 2019-01-15 7:00:20
2 40
3 60 2019-01-15 7:01:00
4 80
... ...
4315 86300
4316 86320
4317 86340
4318 86360
4319 86380
[4320 rows x 1 columns]
我的印象這可以通過
pd.to_datetime(['2019-01-15 7:00:00']).add(pd.to_timedelta(df[('lapse','')],unit='s'))
但是,編譯器回傳錯誤
AttributeError: 'DatetimeIndex' object has no attribute 'add'
我可以知道如何解決問題嗎?
重現上述問題的完整代碼如下
import numpy as np
import pandas as pd
np.random.seed(0)
increment=20
max_val=86400
# Elapse unit in second
aran=np.arange(0,max_val,increment).astype(int)
df=pd.DataFrame(aran,columns=[('lapse','')])
df['time']=pd.to_datetime(['2019-01-15 7:00:00']).add(pd.to_timedelta(df[('lapse','')],unit='s'))
uj5u.com熱心網友回復:
將您的時間戳作為str代替list并使用 運算子傳遞:
df['time'] = pd.to_datetime('2019-01-15 7:00:00') pd.to_timedelta(df[('lapse','')],unit='s')
[出去]
(lapse, ) time
0 0 2019-01-15 07:00:00
1 20 2019-01-15 07:00:20
2 40 2019-01-15 07:00:40
3 60 2019-01-15 07:01:00
4 80 2019-01-15 07:01:20
... ... ...
4315 86300 2019-01-16 06:58:20
4316 86320 2019-01-16 06:58:40
4317 86340 2019-01-16 06:59:00
4318 86360 2019-01-16 06:59:20
4319 86380 2019-01-16 06:59:40
[4320 rows x 2 columns]
uj5u.com熱心網友回復:
使用to_datetime與origin和unit='s'引數:
df['time'] = pd.to_datetime(df[('lapse','')], origin='2019-01-15 7:00:00', unit='s')
print (df)
(lapse, ) time
0 0 2019-01-15 07:00:00
1 20 2019-01-15 07:00:20
2 40 2019-01-15 07:00:40
3 60 2019-01-15 07:01:00
4 80 2019-01-15 07:01:20
... ...
4315 86300 2019-01-16 06:58:20
4316 86320 2019-01-16 06:58:40
4317 86340 2019-01-16 06:59:00
4318 86360 2019-01-16 06:59:20
4319 86380 2019-01-16 06:59:40
[4320 rows x 2 columns]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/383537.html
上一篇:熊貓:找到俱樂部的重疊
