【问题标题】:flatten a multi index in pandas [duplicate]展平熊猫中的多索引[重复]
【发布时间】:2021-03-15 07:14:28
【问题描述】:

我需要为我的行设置索引,当我这样做时,pandas 会自动使我的列索引分层..然后我尝试了我可以搜索的每一个扁平化方法,但是一旦我 reset_index,我的行索引被替换为iloc(整数)。如果我使用 df.columns = [ my col index name],它根本不会展平我的列索引..

我以 pandas 官方文档为例

df = pd.DataFrame({'month': [1, 4, 7, 10],
                   'year': [2012, 2014, 2013, 2014],
                   'sale': [55, 40, 84, 31]})
df.set_index('month')

我明白了

       year  sale
month
1      2012    55
4      2014    40
7      2013    84
10     2014    31

然后我将索引展平

df.reset_index()

然后就变成了

  index month   year    sale
0   0   1       2012    55
1   1   4       2014    40
2   2   7       2013    84
3   3   10      2014    31

(行索引的月份消失了...) 这真的要了我的命,所以如果有人可以帮助制作数据框,我将不胜感激

month  year  sale
1      2012    55
4      2014    40
7      2013    84
10     2014    31

谢谢!

【问题讨论】:

  • 我不想要多索引...但我认为它是在我使用 set_index() 时自动创建的?
  • 在这个例子中我需要按月自定义我的行索引
  • 那么需要df = df.set_index('month').rename_axis(index=None, columns='month') 吗?
  • !!!!这是正确的!怎么会!非常感谢
  • 但是,当我尝试 df.index.name 它给我 None (应该是“月”)?我仍然认为它与扁平化有关..

标签: pandas dataframe multi-index hierarchical


【解决方案1】:

你只需要

df.reset_index(drop=True)

返回

  month  year  sale
0      1  2012    55
1      4  2014    40
2      7  2013    84
3     10  2014    31

【讨论】:

  • 是的,我做到了!但我也希望我的行按月索引...所以我必须再次执行 set_index,它给了我不需要的 col 索引...
猜你喜欢
  • 2019-01-26
  • 1970-01-01
  • 2016-10-16
  • 2019-01-19
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-13
相关资源
最近更新 更多