首页 > 解决方案 > Panda 将相同的索引名称移动到唯一的列名

问题描述

我有一个形状为 366,1 的 pandas df“lty”,如下所示,第一个“时间”列是一个月或在这种情况下是一月,第二个“时间”列是一个月中的一天。这是结果

lty = ylt.groupby([ylt.index.month, ylt.index.day]).mean()

我可能需要重置索引或让列重命名如下,以便“lty”的形状为 366,3:

             LT Mean
time time           
1    1     11.263604
     2     11.971495
     3     11.989080
     4     12.558736
     5     11.850899

             
month day  LT Mean        
1    1     11.263604
     2     11.971495
     3     11.989080
     4     12.558736
     5     11.850899

我试图重置索引,但出现此错误:

lty.reset_index()

ValueError: cannot insert time, already exists

谢谢你,因为我还在学习如何操作列,索引。

标签: pandasindexingresetcol

解决方案


当您将 Index 属性分组时groupbyrename它们在聚合后不会发生冲突:

lty = (ylt.groupby([ylt.index.month.rename('month'), ylt.index.day.rename('day')])
          .mean().reset_index())

#month day   LT Mean          
#1     1     11.263604
#1     2     11.971495
#1     3     11.989080
#1     4     12.558736
#1     5     11.850899

推荐阅读