在Pandas中重置索引后添加1列

时间:2015-04-15 09:23:29

标签: indexing pandas reset

如何在不获取额外列的情况下重置数据帧的索引? 我尝试了这里给出的答案In pandas, how can I reset index without adding a new column?,但它删除了原始索引。我希望原始索引保留在df中。

>>> df=pd.DataFrame([[1,2],[3,5]],columns=['a','b'],index=[12,13])
>>> df
    a  b
12  1  2
13  3  5
>>> df.reset_index(inplace=True)
>>> df
   index  a  b
0     12  1  2
1     13  3  5

>>> df=pd.DataFrame([[1,2],[3,5]],columns=['a','b'],index=[12,13])
>>> df.reset_index(inplace=True,drop=True)
>>> df
   a  b
0  1  2
1  3  5

1 个答案:

答案 0 :(得分:2)

我不确定你想要什么。您似乎在说您想要一个新索引,保留旧索引,但不要将旧索引保留为新列。我不确定这意味着什么。

如果您只想要一个没有数据框中额外列的新索引...

df.index = range(len(df))

如果您只想将当前索引弹出到数据框中,还要保持当前索引不变...

df['index'] = df.index

如果你想将旧索引放入数据框并创建一个新索引,但是你对使用pandas.DataFrame.reset_index()有强烈的道德反对意见,那么你可以试试以下......

df['old_index'] = df.index
df.index = range(len(df))