排序数据框后更新索引 [英] Update index after sorting data-frame
本文介绍了排序数据框后更新索引的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
采用以下数据框:
x = np.tile(np.arange(3),3)
y = np.repeat(np.arange(3),3)
df = pd.DataFrame({"x": x, "y": y})
x y
0 0 0
1 1 0
2 2 0
3 0 1
4 1 1
5 2 1
6 0 2
7 1 2
8 2 2
我需要先按x
对其进行排序,然后仅按y
对其进行排序:
I need to sort it by x
first, and only second by y
:
df2 = df.sort(["x", "y"])
x y
0 0 0
3 0 1
6 0 2
1 1 0
4 1 1
7 1 2
2 2 0
5 2 1
8 2 2
如何更改索引,使其再次上升. IE.我怎么得到这个:
How can I change the index such that it is ascending again. I.e. how do I get this:
x y
0 0 0
1 0 1
2 0 2
3 1 0
4 1 1
5 1 2
6 2 0
7 2 1
8 2 2
我尝试了以下方法.不幸的是,它根本不会改变索引:
I have tried the following. Unfortunately, it doesn't change the index at all:
df2.reindex(np.arange(len(df2.index)))
推荐答案
You can reset the index using reset_index
to get back a default index of 0, 1, 2, ..., n-1 (and use drop=True
to indicate you want to drop the existing index instead of adding it as an additional column to your dataframe):
In [19]: df2 = df2.reset_index(drop=True)
In [20]: df2
Out[20]:
x y
0 0 0
1 0 1
2 0 2
3 1 0
4 1 1
5 1 2
6 2 0
7 2 1
8 2 2
这篇关于排序数据框后更新索引的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文