我创建了一个datetime变量,并将其附加到DataFrame后,它会自动转换为Timestamp。怎么会这样任何人都对此有想法吗?
mydatetime=datetime.datetime(2019,1,22)
df_test=pd.DataFrame(columns=['datetimecol','value'])
df_test.loc[len(df_test)]=[mydatetime,12.3]
df_test
df_test.datetimecol[0]
答案 0 :(得分:1)
这是设计使然。 Pandas专门研究NumPy数组促进的矢量化操作。 1 因此,Pandas可以将datetime
系列存储在以整数(int64
)为后缀的连续内存块中。相反,datetime.datetime
值列表将由指向多个不同内存地址的一系列指针组成。
除了更好的内存管理外,pd.Timestamp
支持datetime.datetime
对象可用的功能,以及有用的特定于Pandas的功能。
通常,在使用熊猫时,请尽量避免使用import datetime
。它不仅通常是不必要的,而且比直接处理pd.Timestamp
对象的效率更低。
1 有关其工作原理的更多信息,请参见this answer。