gpt4 book ai didi

python - Pandas to_dict() 返回 "Timestamp"

转载 作者:太空狗 更新时间:2023-10-30 01:40:59 27 4
gpt4 key购买 nike

嗯,这很尴尬......我正在尝试创建一个 good reproducible pandas example通过给你们我的数据集的一个小样本。我认为使用 df.to_dict() 会很简单,但无济于事。

df2 = df1[['DATE_FILLED','DAYS_SUPPLY']].head(5)
df2['DATE_FILLED'] = pd.to_datetime(df2['DATE_FILLED'])
diction = df2.to_dict()

输出:

{'DATE_FILLED': {0: Timestamp('2016-12-28 00:00:00'),
1: Timestamp('2016-12-31 00:00:00'),
2: Timestamp('2016-12-20 00:00:00'),
3: Timestamp('2016-12-21 00:00:00'),
4: Timestamp('2016-12-26 00:00:00')},
'DAYS_SUPPLY': {0: 14, 1: 14, 2: 14, 3: 7, 4: 7}}

但是如果社区使用文本将其转换为数据框:

import pandas as pd
from datetime import datetime
import time
d= pd.DataFrame({'DATE_FILLED': [Timestamp('2016-12-28 00:00:00'), Timestamp('2016-12-31 00:00:00'), Timestamp('2016-12-20 00:00:00'), Timestamp('2016-12-21 00:00:00'), Timestamp('2016-12-26 00:00:00')], 'DAYS_SUPPLY': [14, 14, 14, 7, 7]})

他们会得到 NameError: name 'Timestamp' is not defined。我已经尝试导入各种东西,甚至尝试在 pd.to_dict() 中尝试使用不同的 orients .

我如何转换 Timestamps 或者更好的是,从它们创建一个 DataFrame?

最佳答案

您需要从 pandas 导入 Timestamp:

>>> import pandas as pd
>>> from pandas import Timestamp
>>> d= pd.DataFrame({'DATE_FILLED': [Timestamp('2016-12-28 00:00:00'), Timestamp('2016-12-31 00:00:00'), Timestamp('2016-12-20 00:00:00'), Timestamp('2016-12-21 00:00:00'), Timestamp('2016-12-26 00:00:00')], 'DAYS_SUPPLY': [14, 14, 14, 7, 7]})
>>>
>>> d
DATE_FILLED DAYS_SUPPLY
0 2016-12-28 14
1 2016-12-31 14
2 2016-12-20 14
3 2016-12-21 7
4 2016-12-26 7
>>>

以后可以随时用内省(introspection)给自己一个好的提示:

>>> ts = d.to_dict()['DATE_FILLED'][0]
>>> type(ts)
<class 'pandas.tslib.Timestamp'>
>>> from pandas.tslib import Timestamp

关于python - Pandas to_dict() 返回 "Timestamp",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42844420/

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