重新索引数据框

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

谢谢。

1个回答

42

一种方法是使用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

7
我认为您还需要指定 inplace=True,否则 df_no_2 不会受到影响,而是会创建一个新的数据框:df_no_2.reset_index(drop=True, inplace=True)(pandas v0.15.2)。 - silentser
1
通常情况下,您只需将结果分配给某个变量(例如 df_no_2 = df_no_2.reset_index(drop=True)),就像您对大多数 pandas 操作所做的那样。 - DSM
哇,直到现在我一直在删除 reset_index 时出现的索引列。不知道 drop=True 可以解决它。哇。 - fixxxer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接