我正在使用 pandas df 中的时间序列数据,该数据没有真正的日历日期,而是一个指示每个值之间相等时间间隔的索引值。我正在尝试将其转换为具有每日或每周频率的日期时间类型。有没有办法在更改类型时保持值相同(例如不设置实际的日历日期)?
Index,Col1,Col2
1,6.5,0.7
2,6.2,0.3
3,0.4,2.1
pd.to_datetime
可以在给定相对于某个原点的时间单位时创建日期。默认值为 POSIX 原点1970-01-01 00:00:00
和时间(以纳秒为单位)。
import pandas as pd
df['date1'] = pd.to_datetime(df.index, unit='D', origin='2010-01-01')
df['date2'] = pd.to_datetime(df.index, unit='W')
# Col1 Col2 date1 date2
#Index
#1 6.5 0.7 2010-01-02 1970-01-08
#2 6.2 0.3 2010-01-03 1970-01-15
#3 0.4 2.1 2010-01-04 1970-01-22
或者,您可以将timedelta
s添加到指定的开始:
pd.to_datetime('2010-01-01') + pd.to_timedelta(df.index, unit='D')
或者只是将它们保留为timedelta
:
pd.to_timedelta(df.index, unit='D')
#TimedeltaIndex(['1 days', '2 days', '3 days'], dtype='timedelta64[ns]', name='Index', freq=None)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句