gpt4 book ai didi

python - Pandas to_dict() 将日期时间转换为时间戳

转载 作者:行者123 更新时间:2023-12-04 17:24:31 25 4
gpt4 key购买 nike

在我的 Pandas DataFrame 中,我有一些日期值,我使用 datetime 从时间戳转换为日期时间。模块。打印出 DataFrame 看起来不错,但是当我使用 to_dict() 将 DataFrame 转换为字典时,日期时间值似乎是 Pandas Timestamp类型。
我的问题类似于 this question ,但我没有 Pandas Timestamp对象开头,我想保留 datetime我首先创造了。建议的解决方案对我也不起作用,因为输出仍然是 Pandas Timestamp , 但 dtype object .
输入:

import pandas as pd
from datetime import datetime

list_in = [
{"name": "a", "created": 1574947970000},
{"name": "b", "created": 1581322065000},
{"name": "c", "created": 1578929177000}
]
然后我创建一个 DataFrame 并将每个时间戳转换为 datetime格式。 (除以1000是必须的,因为时间戳是以毫秒为单位的,应该是秒)
df = pd.DataFrame(list_in)
df["created"] = [datetime.fromtimestamp(x / 1000) for x in df["created"]]
print(df)
输出:
  name             created
0 a 2019-11-28 14:32:50
1 b 2020-02-10 09:07:45
2 c 2020-01-13 16:26:17
name object
created datetime64[ns]
dtype: object
此输出将正确的日期值显示为日期时间对象。在我的项目中,我在 DataFrame 上做了一些与本主题无关的魔法。但最后我想将 DataFrame 转换回这样的字典列表:
list_out = df.to_dict(orient="records")
最终输出:
[{'name': 'a', 'created': Timestamp('2019-11-28 14:32:50')}, 
{'name': 'b', 'created': Timestamp('2020-02-10 09:07:45')},
{'name': 'c', 'created': Timestamp('2020-01-13 16:26:17')}]
最终所需的输出:
[{'name': 'a', 'created': datetime.datetime(2019, 11, 28, 14, 32, 50)}, 
{'name': 'b', 'created': datetime.datetime(2020, 2, 10, 9, 7, 45)},
{'name': 'c', 'created': datetime.datetime(2020, 1, 13, 16, 26, 17)}]
所以我的问题实际上是,为什么 to_dict()返回 datetime值作为 Pandas Timestamp对象?我怎样才能防止这种情况发生?

最佳答案

为什么可以找到here .
我不知道如何防止它发生,但您可以将时间戳转换为 datetime64 向后:

for rec in list_out:
rec['created'] = rec['created'].to_datetime64()

关于python - Pandas to_dict() 将日期时间转换为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64171427/

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