23

私はデータフレームを持っています。次に、いくつかの行を削除して別のデータ フレームを作成する論理条件があります。ただし、新しいデータ フレームは、削除された行のインデックスをスキップします。スキップせずに順番にインデックスを再作成するにはどうすればよいですか? 明確にするためにコード化されたサンプルを次に示します

import pandas as pd
import numpy as np

jjarray = np.array(range(5))
eq2 = jjarray == 2
neq2 = np.logical_not(eq2)

jjdf = pd.DataFrame(jjarray)
jjdfno2 = jjdf[neq2]

jjdfno2

外:

  0
0 0
1 1
3 3
4 4

私はそれを次のようにしたい:

  0
0 0
1 1
2 3
3 4

ありがとう。

4

1 に答える 1

40

1 つの方法は、次を使用することreset_indexです。

>>> df = pd.DataFrame(range(5))
>>> eq2 = df[0] == 2
>>> df_no_2 = df[~eq2]
>>> df_no_2
   0
0  0
1  1
3  3
4  4
>>> df_no_2.reset_index(drop=True)
   0
0  0
1  1
2  3
3  4
于 2013-03-21T20:41:07.893 に答える