Python 在pandas中混淆datetime对象
我对熊猫处理时间相关对象的方式感到困惑 如果我这样做Python 在pandas中混淆datetime对象,python,datetime,numpy,pandas,Python,Datetime,Numpy,Pandas,我对熊猫处理时间相关对象的方式感到困惑 如果我这样做 x = pd.datetime.fromtimestamp(1440502703064/1000.) # or x = pd.datetime(1234,5,6) 然后type(x)在这两种情况下返回datetime.datetime。但是,如果我有: z = pd.DataFrame([ {'a': 'foo', 'ts': pd.datetime.fromtimestamp(1440502703064/1000.)} ]
x = pd.datetime.fromtimestamp(1440502703064/1000.) # or
x = pd.datetime(1234,5,6)
然后type(x)
在这两种情况下返回datetime.datetime
。但是,如果我有:
z = pd.DataFrame([
{'a': 'foo', 'ts': pd.datetime.fromtimestamp(1440502703064/1000.)}
])
然后
type(z['ts'][0])
返回pandas.tslib.Timestamp
。这部戏什么时候开始?它的触发器是pandas
还是numpy
?在后一种情况下,我得到的是什么类型的数据?它记录在哪里?我不是100%确定,因为我没有研究底层代码,但是从datetime.datetime的转换发生在值“合并”到数据帧的那一刻
在DataFrame
之外,pandas将尝试做一些聪明的事情,并在使用pd.dattime(.fromtimestamp)
时返回一些合理的东西:它返回一个Pythondatetime.datetime
对象
在内部,它使用了一些可能在内部工作得更好的东西。您可以在使用datetime.datetime
对象创建DataFrame
时看到转换:
>>> from datetime import datetime
>>> z = pd.DataFrame([
{'a': 'foo', 'ts': datetime(2015,8,27)} ])
>>> type(z['ts'][0])
pandas.tslib.Timestamp
也许更清楚:
>>> pd.datetime == datetime
True
因此,转换发生在数据帧
初始化期间
至于文档,我四处搜索,找到了(注意:可能不是一个非常安全的链接),上面写着(docstring):
时间戳相当于python的Datetime,是
在大多数情况下可以与之互换。这是一种用于
组成DatetimeIndex的项,以及其他面向时间序列的项
熊猫的数据结构
听起来不错。因此,TimeStamp
是一种内部未记录的对象。太好了:(阅读大量的文档会有帮助:和