DataFrame切片和默认索引

时间:2016-04-12 01:22:22

标签: python-3.x pandas dataframe

我有一个pandas.DataFrame df,如下所示。第一列是自动生成的索引。

In[221]: df
Out[220]: 
    name  age sex        job
0   John   15   M    Student
1   Mike   30   M      Labor
2   Lily   41   F    Student
3   Dave   66   M      Labor
4    Sam   23   F  Scientist
5   Luke    7   M      Labor
6  Ellen   80   F      Labor
7  Jacob   52   M      Actor

现在切片后,默认索引会被继承。

In[225]: df_labor = df[df.job == 'Labor']
In[226]: df_labor
Out[225]: 
    name  age sex    job
1   Mike   30   M  Labor
3   Dave   66   M  Labor
5   Luke    7   M  Labor
6  Ellen   80   F  Labor

由于自动生成的索引对我没有任何意义。如何使它们[0,1,2,3]而不是[1,3,5,6],这样当我尝试用df_labor.ix [3] ['获得df_labor的第3行(从零开始)时名字'],我可以得到'艾伦'而不是'戴夫'?

1 个答案:

答案 0 :(得分:0)

您需要致电reset_index

df_labor = df[df.job == "Labor"].reset_index(drop = True)
In [94]: df_labor               
Out[94]:                

    age job     name    sex
0   30  Labor   Mike    M
1   66  Labor   Dave    M
2   7   Labor   Luke    M
3   80  Labor   Ellen   F

默认情况下,pandas将旧索引作为列添加到新数据帧。 drop = True删除该列。