1. ホーム
  2. python

[解決済み] データフレームをソートした後にインデックスを更新する

2022-07-14 18:50:16

質問

次のようなデータフレームがあります。

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 でソートし、2 番目に 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

どうすれば、インデックスを再び昇順に変更できますか?すなわち、どうすればこれを得ることができるのでしょうか。

   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

を試してみました。残念ながら、全くインデックスが変わりません。

df2.reindex(np.arange(len(df2.index)))

どのように解決するのですか?

あなたは リセット を使用してインデックスをリセットできます。 reset_index を使うと、0, 1, 2, ..., n-1のデフォルトインデックスが返されます(さらに drop=True を使用して、既存のインデックスをデータフレームに追加するのではなく、削除したいことを示します)。

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