Python 重新索引数据帧
我有一个数据框。然后,我有一个逻辑条件,使用该条件通过删除一些行来创建另一个数据帧。然而,新的数据帧跳过删除行的索引。如何让它按顺序重新编制索引而不跳过?下面是一个示例代码,用于说明Python 重新索引数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框。然后,我有一个逻辑条件,使用该条件通过删除一些行来创建另一个数据帧。然而,新的数据帧跳过删除行的索引。如何让它按顺序重新编制索引而不跳过?下面是一个示例代码,用于说明 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 = jjd
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
2 3
3 4
谢谢。一种方法是使用
重置索引
:
>>> 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
谢谢你,这正是我想要的。我相信你还需要指定
inplace=True
,否则df\u no\u 2
不会受到影响,而是会创建一个新的数据框:df\u no\u 2.reset\u index(drop=True,inplace=True)
(v0.15.2)通常你只需将结果分配给某个对象即可(例如,df_no_2=df_no_2.reset_index(drop=True)
),就像大多数pandas操作一样。哇,到目前为止,我一直在删除带有reset_index的索引列。不知道drop=True会处理它。哇。
>>> 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