我在列中有以下股票数据集,在行的日期下方(使用彭博(Bloomberg)的Python API下载-请忽略以下事实:它们全都是“ NaN”-仅用于数据的这一部分):
我正在尝试从索引中提取月份和年份,以便稍后进行调整:
values['month'] = values['date'].apply(lambda x: x.month)
其中values是上述DataFrame的名称。
但这会产生错误:’KeyError’date’
运行:
values.index
看起来不错:
DatetimeIndex(['2010-01-01', '2010-01-02', '2010-01-03', '2010-01-23', '2010-01-24', '2010-01-29', '2010-01-30', '2010-01-31', '2010-02-13', '2010-02-14', ... '2017-08-12', '2017-08-27', '2017-08-31', '2017-09-01', '2017-09-03', '2017-09-09', '2017-09-24', '2017-09-29', '2017-09-30', '2017-10-01'], dtype='datetime64[ns]', name='date', length=593, freq=None)
所以我只是想知道问题出在哪里,为什么我似乎无法在这里访问实际的索引?
第一列称为index并且date为index.name。
index
date
index.name
您可以通过以下方式进行检查:
print (df.index.name)
所以你需要DatetimeIndex.month和DatetimeIndex.year:
DatetimeIndex.month
DatetimeIndex.year
values.index.month
编辑:
对于自定义字符串格式,日期用作strftime:
strftime
values['name'] = values.index.strftime('%B - %Y')