Python 从索引中创建新列时自动替换索引
我目前正在按日期(DD/MM/YY)索引的熊猫数据帧上做一些练习。当前的练习要求我按年份分组,以获得年平均值。 所以我试图创建一个新列,只包含从数据框索引中提取的年份。我写的代码是:Python 从索引中创建新列时自动替换索引,python,pandas,dataframe,Python,Pandas,Dataframe,我目前正在按日期(DD/MM/YY)索引的熊猫数据帧上做一些练习。当前的练习要求我按年份分组,以获得年平均值。 所以我试图创建一个新列,只包含从数据框索引中提取的年份。我写的代码是: data["year"] = [t.year for t in data.index] data.groupby("year").mean() 但出于某种原因,新的“年”栏最终取代了之前的完整日期索引(甚至没有成为“标准”栏,它完全消失了),这有点出乎意料。这怎么可能 提前谢谢 对于示例数据帧:
data["year"] = [t.year for t in data.index]
data.groupby("year").mean()
但出于某种原因,新的“年”栏最终取代了之前的完整日期索引(甚至没有成为“标准”栏,它完全消失了),这有点出乎意料。这怎么可能
提前谢谢 对于示例数据帧:
value
2016-01-22 1
2014-02-02 2
2014-08-27 3
2016-01-23 4
2014-03-18 5
如果要保留逻辑,只需调用要获取的mean()
列,并使用transform()
,然后将其分配回值
列:
data['year'] = [t.year for t in data.index]
data['value'] = data.groupby('year')['value'].transform('mean')
收益率:
value year
2016-01-22 2.500000 2016
2014-02-02 3.333333 2014
2014-08-27 3.333333 2014
2016-01-23 2.500000 2016
2014-03-18 3.333333 2014
你能在你的问题中包括你的数据帧的样本吗?