Skip to main content
 首页 » 编程设计

python之将多级 Pandas 索引转换为日期时间

2025年05月04日29luoye11

我知道了。数据框:

          col_a     col_b   
4 15  69.717679  0.09701   
  16  69.717679  0.09701   
  17  69.717679  0.09701   
  18  69.717679  0.09701   
  19  69.717679  0.09701   

它有一个多索引,第一个级别代表月份 (4),下一个级别代表月份中的第几天 (1..31)。如何将多级索引转换为日期时间索引?年份值为 2013。

我试过这个:

pd.to_datetime(df_past.index.levels[1] + df_past.index.levels[0] + 2013, format="%d%m%Y") 

但出现错误:

*** ValueError: cannot evaluate a numeric op with unequal lengths 

请您参考如下方法:

要获取索引级别的值,您需要 .get_level_values() 而不是 .levels:

pd.to_datetime(2013 * 10000 + df_past.index.get_level_values(0) * 100 +  
               df_past.index.get_level_values(1), format="%Y%m%d") 

此外,如果将它们作为整数值相加,则需要乘以 10000/100 以获得正确的格式。另一种方法是 astype(str) 它们中的每一个,然后只需添加(连接)即可。