Pandas dataframe.set_index() 删除之前的索引和列

icy*_*ypy 3 python indexing dataframe pandas

我刚刚在 Pandas DataFrames 中遇到了一个奇怪的现象,当使用 DataFrame.set_index('some_index') 设置索引时,旧列也是一个索引被删除了!下面是一个例子:

import pandas as pd
df = pd.DataFrame({'month': [1, 4, 7, 10],'year': [2012, 2014, 2013, 2014],'sale':[55, 40, 84, 31]})
df_mn=df.set_index('month')
>>> df_mn
       sale  year
month            
1        55  2012
4        40  2014
7        84  2013
10       31  2014
Run Code Online (Sandbox Code Playgroud)

现在我将索引更改为年份:

df_mn.set_index('year')
      sale
year      
2012    55
2014    40
2013    84
2014    31
Run Code Online (Sandbox Code Playgroud)

.. 并且月份列与索引一起被删除。这很烦人,因为我只是想交换 DataFrame 索引。

有没有办法不删除作为索引的前一列?也许通过类似:DataFrame.set_index('new_index',delete_previous_index=False)

感谢您的任何建议

Kay*_*tig 7

您可以执行以下操作

>>> df_mn.reset_index().set_index('year')
      month  sale
year             
2012      1    55
2014      4    40
2013      7    84
2014     10    31
Run Code Online (Sandbox Code Playgroud)