gpt4 book ai didi

python - 是什么改变了这个 pandas 代码中的日期类型?

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:17 25 4
gpt4 key购买 nike

我在 Pandas 中有一个数据框,其中包含日期和一些其他数据。日期明确为 datetime.date 类型。例如,我用手强制执行此操作。在实际问题中,框架是从已按这种方式设置的外部源导入的。操作索引后,我发现我的日期属于 pandas._libs.tslib.Timestamp 类,这会导致与后面的代码不兼容。是什么导致类型/类发生变化?

最小工作示例(注意第 3 行和第 7 行之间的差异):

In [1]: df = pd.DataFrame({'date' : ['02/20/2015','01/15/2016','08/21/2015'],  'i' : ['Bob', 'Bob', 'Jim'] ,'v' : [1, 2, 3]})

In [2]: df['date'] = pd.to_datetime(df.date).dt.date

In [3]: print type(df.date[0])
<type 'datetime.date'>

In [4]: df.set_index(['i','date'], inplace=True)

In [5]: print type(df.loc['Bob',:].index[0])
<class 'pandas._libs.tslib.Timestamp'>

In [6]: df.reset_index(inplace=True)

In [7]: print type(df.date[0])
<class 'pandas._libs.tslib.Timestamp'>

最佳答案

我为此苦苦挣扎了几个小时,最终将问题追溯到多索引。在最初的上下文中,很难发现,因为多索引操作出现在包括切片、部分索引等在内的较大操作集的中间。但最重要的是,日期的类型在第 4 行进行了转换在上面的示例中,当设置了多重索引时,此后它仍然是 Pandas 类。

如果我只是set_index('time'),例如常规(非多重)索引,没有类型转换。这也是追踪原因的一个复杂因素,因为我简化了索引操作作为调试的第一步,从而消除了我试图追踪的问题。

关于python - 是什么改变了这个 pandas 代码中的日期类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56958347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com