我知道了。数据框:
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) 它们中的每一个,然后只需添加(连接)即可。
