python – 在Pandas中将两个MultiIndex级别合并为一个

我有一个Pandas数据框,它是MultiIndexed.第二级包含一年([2014,2015]),第三级包含月份数([1,2,…,12]).我想将这两者合并为一个单一的级别,如 – [1/2014,2/2014 …,2015年6月].怎么可以这样做?

我是熊猫的新手.搜索了很多,但找不到任何类似的问题/解决方案.

编辑:我找到了一种方法来避免与this question的答案一起完全这样做.我应该一直在创建我的数据框.这似乎是DateTime索引的方法.

解决方法:

考虑pd.MultiIndex和pd.DataFrame,mux和df

mux = pd.MultiIndex.from_product([list('ab'), [2014, 2015], range(1, 3)])

df = pd.DataFrame(dict(A=1), mux)

print(df)

          A
a 2014 1  1
       2  1
  2015 1  1
       2  1
b 2014 1  1
       2  1
  2015 1  1
       2  1

如果列表代表我们想要的索引,我们希望将索引重新分配给索引.

>我希望第一级保持不变

df.index.get_level_values(0)

>我希望新的第二级是当前第二级和第三级的字符串连接,但是反转顺序

df.index.map('{0[2]}/{0[1]}'.format)

df.index = [df.index.get_level_values(0), df.index.map('{0[2]}/{0[1]}'.format)]

print(df)

          A
a 1/2014  1
  2/2014  1
  1/2015  1
  2/2015  1
b 1/2014  1
  2/2014  1
  1/2015  1
  2/2015  1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐