日期时间在我的索引系列中不起作用

2024-05-16 01:56:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个充满数据的hf5。在

当我在python中打开它时,我得到了这个输出

hf['SB'].head()

0_1                     price   cng     
2015-07-15 07:30:00.087 12.61   4
2015-07-15 07:30:00.087 12.61   1
2015-07-15 07:30:00.087 12.61   1
2015-07-15 07:30:00.087 12.61   2
2015-07-15 07:30:00.087 12.61   19

从2015年到2016年。在

^{pr2}$

嗯。。。我的问题是:

例如,当我想分一杯的时候,比如2015年8月20日:

hf['SB'][datetime(2015,8,20)]

我得到了这个错误:KeyError: datetime.datetime(2015, 8, 20, 0, 0)

但如果我使用:

hf['SB']['2015-08-20']

它的作品!!!在

我的索引文件有问题,或者我使用了datetime函数错误?在


Tags: 文件数据函数datetime错误pricehead作品
1条回答
网友
1楼 · 发布于 2024-05-16 01:56:54

我相信,你是在寻找一个键的值,而这个键根本不在索引中。hf['SB']['2015-08-20']将为您提供该特定日期的所有记录。 参见以下示例:

>>> rng = pd.date_range('1/1/2016', periods=10, freq='S')
>>> ts = pd.Series(np.random.randn(len(rng)), index=rng)
>>> ts = ts[1:]

>>> ts
2016-01-01 00:00:01    0.133551
2016-01-01 00:00:02    1.067772
2016-01-01 00:00:03    0.591676
2016-01-01 00:00:04   -2.445586
2016-01-01 00:00:05    0.700155
2016-01-01 00:00:06   -0.127861
2016-01-01 00:00:07    1.116494
2016-01-01 00:00:08   -0.427959
2016-01-01 00:00:09    2.115352
Freq: S, dtype: float64

>>> ts[datetime.date(2016,1,1)]
....
KeyError: datetime.date(2016, 1, 1)

>>>  ts['2016-01-01']

2016-01-01 00:00:01    0.133551
2016-01-01 00:00:02    1.067772
2016-01-01 00:00:03    0.591676
2016-01-01 00:00:04   -2.445586
2016-01-01 00:00:05    0.700155
2016-01-01 00:00:06   -0.127861
2016-01-01 00:00:07    1.116494
2016-01-01 00:00:08   -0.427959
2016-01-01 00:00:09    2.115352
Freq: S, dtype: float64

因此,使用hf['SB']['2015-08-20']您将获得“2015-08-20”的所有记录,但是datetime.datetime(2015,8,20,0,0)没有记录

如果要使用日期时间切片,请尝试以下操作:

^{pr2}$

相关问题 更多 >