pandas和python中不同类型的日期类型
我正在构建一个交易策略回溯测试,该测试与将日期存储为索引有关。有人能解释一下日期的下列数据类型的差异(以及赋值时的可变性)吗pandas和python中不同类型的日期类型,python,python-3.x,pandas,datetime,Python,Python 3.x,Pandas,Datetime,我正在构建一个交易策略回溯测试,该测试与将日期存储为索引有关。有人能解释一下日期的下列数据类型的差异(以及赋值时的可变性)吗 a=pd.date_range('1/1/2016',periods=10,freq='w') b=datetime.datetime(2016,1,4) c=pd.datetime(2016,1,4) d=pd.Timestamp(153543453435) 打印时,数据类型如下: <class 'pandas.core.indexes.datetimes.Da
a=pd.date_range('1/1/2016',periods=10,freq='w')
b=datetime.datetime(2016,1,4)
c=pd.datetime(2016,1,4)
d=pd.Timestamp(153543453435)
打印时,数据类型如下:
<class 'pandas.core.indexes.datetimes.DatetimeIndex'> (print(type(a))
<class 'pandas._libs.tslib.Timestamp'> (print(type(a[0]))
<class 'datetime.datetime'>
<class 'datetime.datetime'>
<class 'pandas._libs.tslib.Timestamp'>
(打印(类型(a))
(打印(类型(a[0]))
如果有人能详细解释它们之间的区别,以及变量赋值时的可变性,那就太好了
dti = pd.date_range('1/1/2016',periods=10,freq='w')
根据DatetimeIndex
is:
不可变的datetime64数据数组,内部表示为int64,可以装箱到作为datetime子类的Timestamp对象,并携带元数据,如频率信息
此外,pandasTimestamp
对象设计为不可变:
ts # returns Timestamp('2016-01-03 00:00:00', freq='W-SUN')
ts.replace(year=2015) # returns Timestamp('2015-01-03 00:00:00', freq='W-SUN')
ts # returns Timestamp('2016-01-03 00:00:00', freq='W-SUN')
请注意原始时间戳
对象的年份如何没有改变。相反,replace方法返回了一个新的时间戳
对象
最后,关于本机pythondatetime
对象,根据:
这些类型的对象是不可变的
下面是一个关于在表示日期时间的不同类型之间转换的示例
那你为什么要用一个来代替另一个呢
datetimes
是一个很难处理的问题。这就是熊猫创建自己的包装类(Timestamp
)的原因.元数据存储在这些对象上,使其操作更容易。DatetimeIndex
只是一系列对象,这些对象被装箱到Timestamp
对象中,用于添加功能。例如,使用Timestamp
/DatetimeIndex
可以:
- 向datetimeindex添加一定数量的工作日
- 创建跨越特定周数的序列
- 改变时区
- 等等
Timestamp
和DatetimeIndex
类中存储的额外方法和元数据,所有这些都将是一件非常痛苦的事情
更多示例请参见
根据DatetimeIndex
is:
不可变的datetime64数据数组,内部表示为int64,可以装箱到作为datetime子类的Timestamp对象,并携带元数据,如频率信息
此外,pandasTimestamp
对象设计为不可变:
ts # returns Timestamp('2016-01-03 00:00:00', freq='W-SUN')
ts.replace(year=2015) # returns Timestamp('2015-01-03 00:00:00', freq='W-SUN')
ts # returns Timestamp('2016-01-03 00:00:00', freq='W-SUN')
请注意原始时间戳
对象的年份如何没有改变。相反,replace方法返回了一个新的时间戳
对象
最后,关于本机pythondatetime
对象,根据:
这些类型的对象是不可变的
下面是一个关于在表示日期时间的不同类型之间转换的示例
那你为什么要用一个来代替另一个呢
datetimes
是一个很难处理的问题。这就是熊猫创建自己的包装类(Timestamp
)的原因.元数据存储在这些对象上,使其操作更容易。DatetimeIndex
只是一系列对象,这些对象被装箱到Timestamp
对象中,用于添加功能。例如,使用Timestamp
/DatetimeIndex
可以:
- 向datetimeindex添加一定数量的工作日
- 创建跨越特定周数的序列
- 改变时区
- 等等
Timestamp
和DatetimeIndex
类中存储的额外方法和元数据,所有这些都将是一件非常痛苦的事情
查看更多示例。我不熟悉可以装箱到的术语
-知道这意味着什么吗?@wwii java经常使用装箱拆箱…请参阅:我不熟悉可以装箱到
的术语-知道这意味着什么吗?@wwii java经常使用装箱拆箱…请参阅: