python - pandas.setindex() 到日期时间的问题
问题描述
我有一个带有股市数据的熊猫日期框架。有一个日期列(“日期”)。
尝试使用字符串访问日期时,我收到:
KeyError: 'the label [1981-02-17 00:00:00] is not in the [index]'
我通过调用明确地将索引设置为日期时间索引
self.data['date'] = pandas.to_datetime(self.data['date'], format="%Y-%m-%d")
self.data.set_index(pandas.DatetimeIndex(self.data['date'], inplace=True))
这是我的课:
class ohlcData:
def __init__(self, ticker=None, csv=None, intrinio=False):
if ticker is not None:
self.ticker = ticker.upper()
else:
self.ticker = None
if csv is not None:
name_len = csv.find(".csv")
if name_len is -1:
raise ValueError("CSV file should be named ticker.csv where ticker is the stock ticker.")
else:
self.ticker = csv[0:name_len].upper()
self.data = pandas.read_csv(csv)
self.data['date'] = pandas.to_datetime(self.data['date'], format="%Y-%m-%d")
self.data.set_index(self.data['date'], inplace=True)
if not intrinio:
self.data = pandas.DataFrame()
else:
self.read_from_intrinio()
主要内容的相关摘录:
aapl = ohlcData(csv="aapl.csv")
print(aapl.data.loc[datetime.date(1981, 2,17)])
导致:
KeyError: 'the label [1981-02-17] is not in the [index]'
我究竟做错了什么?
解决方案
推荐阅读
- c# - 尽管使用了文件锁
- javascript - 将 eval() 转换为 new Function()
- javascript - jQuery ,Css 显示无块与隐藏显示
- javascript - 将 adminLTE 集成到 nuxt 项目
- mysql - 如何找到对这些字符串使用的加密方法?
- javascript - 在两个数字之间创建一个值数组,递增特定次数?
- c# - Caliburn micro 中的 ProgressChanged 不会更新进度条
- javascript - getBoundingClientRect 不是 vueJs 上的函数
- c++ - 三元运算符在递归中的奇怪行为
- integration-testing - 模拟真实的 gRPC 服务器响应