gpt4 book ai didi

python - 字典列表中的 Pandas 时间序列索引

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:46 24 4
gpt4 key购买 nike

我正在尝试使用 pandas 库在 python 中进行时间序列分析。我的数据现在存储为字典列表:

mydata = [
{
'date': datetime.date(2013, 1, 1),
'snow_depth': 1.0,
}, {
'date': datetime.date(2013, 1, 2),
'snow_depth': 2.5,
}, {
'date': datetime.date(2013, 1, 3),
'snow_depth': 8.0,
},
]

我使用以下命令获取 DataFrame:

df = pd.DataFrame(mydata).set_index('date')

但索引不被识别为 DateTimeIndex,而仅被识别为对象:

df.index

返回:Index([2013-01-01, 2013-01-02, 2013-01-03], dtype='object')

所以,我无法在 Pandas 中进行一些时间序列操作,例如按月聚合等。当我运行 df.index 时,我希望得到如下内容:

<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01, ..., 2013-01-03]
Length: 3, Freq: D, Timezone: None

当我要求索引为 DateTimeIndex 时,如何从列表创建 DataFrame?

最佳答案

Pandas DateTimeIndex 可能有点特别。例如,它不喜欢 datetime.date 值。但是,如果您将它们更改为 datetime.datetime 值,它将按预期工作。甚至相同的调用签名。

import datetime
import pandas as pd
mydata = [
{
'date': datetime.datetime(2013, 1, 1),
'snow_depth': 1.0,
}, {
'date': datetime.datetime(2013, 1, 2),
'snow_depth': 2.5,
}, {
'date': datetime.datetime(2013, 1, 3),
'snow_depth': 8.0,
},
]

df = pd.DataFrame(mydata).set_index('date')

不过,请确保您运行的是最新版本。 0.11 及以下版本在抛出与 DateTimeIndex 相关的错误时更加特别(而且帮助不大)。

关于python - 字典列表中的 Pandas 时间序列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24793679/

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