我有一个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行(从零开始)时名字'],我可以得到'艾伦'而不是'戴夫'?
答案 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
删除该列。