gpt4 book ai didi

python - 将 Pandas DateTimeIndex 转换为 YYYYMMDD 整数?

转载 作者:行者123 更新时间:2023-11-28 18:41:26 26 4
gpt4 key购买 nike

是否有将 pandas DateTimeIndex 转换为 YYYYMMDD 整数列的首选方法?我需要将旧存储的 YYYYMMDD 整数格式返回到一个预先存在的 SQLite 表中,该表假设日期是整数。

Pandas 的 to_sql() 在使用 SQLite 风格和 index=True 时失败并出现“sqlite3.InterfaceError”。显然,使用 SQLalchemy 风格可以将 DateTimeIndex 转换为字符串,但我再次需要将其作为 YYYYMMDD 整数。

虽然似乎有 to_datetime()to_pydatetime() 函数,但似乎没有 from_datetime() 函数.

最佳答案

我对你想要的感到困惑。您正在尝试将 DateTimeIndex 转换为 YYYYMMDD 格式;为什么需要一个 from_datetime 方法来做到这一点?

无论如何,您可以在其上映射/广播 Pandas Timestamp.strftime 函数,或者使用您找到的 to_pydatetime 函数,然后映射 Python datetime.strftime 对结果数组的函数。

Apparently using an SQLalchemy flavor can convert the DateTimeIndex to string, but again I need to have this as an YYYYMMDD integer.

这很简单。给定一个 YYYYMMDD 字符串,要将其转换为整数,您只需对其调用 int — 或者,如果它在 Pandas/Numpy 数组中,您可以映射或广播 int 在它上面,或者更简单地,只是转换它的 dtype。

例如:

>>> dti = pd.DatetimeIndex(['2014-08-31', '2014-09-01'])
>>> pdt = dti.to_pydatetime()
>>> sdt = np.vectorize(lambda s: s.strftime('%Y%m%d'))(pdt)
>>> idt = sdt.astype('I4')
>>> idt
array([20140831, 20140901], dtype=uint32)

(我并不是说这是将 DateTimeIndex 转换为 YYYYMMDD 整数数组的最有效或最易读的方法,只是它可以通过您似乎已经知道的功能,如果这不是您想要的,那么您的问题就没有意义。)

关于python - 将 Pandas DateTimeIndex 转换为 YYYYMMDD 整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25559978/

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