如何基于DataFrame的datetime索引新增年、月、日列?
解决方法
错误原因
你的DataFrame中date是普通列(从dfr.dtypes输出可确认它是datetime64[ns]类型的列),而非索引。当前默认索引是RangeIndex(整数序列),所以调用dfr.index.day会触发AttributeError——整数索引没有day属性。
两种可行方案
方案1:将date列设为索引后提取
先把date列设置为DataFrame的索引,再通过索引提取年、月、日:
# 设置date为索引 dfr = dfr.set_index('date') # 新增年月日列 dfr['day'] = dfr.index.day dfr['month'] = dfr.index.month dfr['year'] = dfr.index.year
方案2:直接从date列提取(无需修改索引)
利用Pandas的dt访问器,直接从date列提取年、月、日:
# 从date列提取年月日并新增列 dfr['year'] = dfr['date'].dt.year dfr['month'] = dfr['date'].dt.month dfr['day'] = dfr['date'].dt.day
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

