如何在不获取额外列的情况下重置数据帧的索引? 我尝试了这里给出的答案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
答案 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))