在 ydata_profiling(以前是 pandas_profiling)中运行 profile_report 时,如何修复“to_pydatetime”错误?

问题描述 投票:0回答:1

我尝试在 ydata_profiling 中进行 profile_report,但收到以下错误:

TypeError:“pandas._libs.tslibs.timestamps._Timestamp”对象的描述符“to_pydatetime”不适用于“datetime.date”对象。

我认为我使用的 pandas 数据框有一些日期字段,实际上这些字段导致了这个错误。我使用了

print(df['effective_date'].apply(type))
并得到了 datetime.date 作为该字段中的数据类型。我尝试将其转换为时间戳数据类型,但遇到了一些挑战。

为什么数据类型需要是时间戳? to_pydatetime 似乎将时间戳转换为我的数据已经是的日期时间。有没有办法解决这个问题,选择退出 profile_report 尝试将我的数据转换为现有的数据?

python pandas datetime timestamp pandas-profiling
1个回答
0
投票

我设法通过对源数据库(在我的例子中是雪花)将数据存储为 DATE 或 TIMESTAMP(任何变体)的任何列强制使用 datetime64 来解决这个问题。

但是,当我尝试使用不同的数据库(oracle)时,即使在尝试强制所有列为 datetime64 之后,我也会遇到相同的错误。尝试在 pd.to_datetime() 中使用错误='强制'和'忽略'。

由于 ydata-profiling 库的工作方式,调试变得困难。在您实际尝试写入配置文件报告文件之前,它不会启动导致错误的计算。当遇到中断时,调试器不知道要进入探查器代码,而是不断将我带回发生文件创建的行。

© www.soinside.com 2019 - 2024. All rights reserved.