【发布时间】:2018-12-01 04:44:08
【问题描述】:
从时间序列中选择单个日期会产生 KeyError。
设置:
import pandas as pd
import numpy as np
ts = pd.DataFrame({'date': pd.date_range(start = '1/1/2017', periods = 5),
'observations': np.random.choice(range(0, 100), 5, replace = True)}).set_index('date')
数据框:
observations
date
2017-01-01 58
2017-01-02 88
2017-01-03 53
2017-01-04 4
2017-01-05 26
如何选择单个日期的观察次数?
ts['2017-01-01']
返回:KeyError: '2017-01-01'
但是……
ts['2017-01-01':'2017-01-01']
...似乎工作得很好。
有什么建议可以用一个日期选择/子集吗?
【问题讨论】:
-
你试过
ts.loc['2017-01-01']吗? -
直接索引数据框引用它的列,而不是它的行。 @Ben.T 的解决方案提供了索引行的典型方法
-
@Ben.T 你能快速写下这个答案,以便 Rene 可以将其标记为正确以指出错误吗?
-
谢谢,工作正常!并感谢您的明确解释。但在 pandas 中仍然感觉有点“不一致”。
-
@Rene 开头,特别是如果你来自 numpy,我理解你的感受。但是过了一会儿,我最终会更频繁地在列之间进行操作而不是在行之间进行操作,并且以这种方式查找列的名称很容易:)
标签: python-3.x pandas time-series