首页 > 解决方案 > 如何在 Pandas 数据框中向上移动特定行?

问题描述

给定以下数据框:

df_test = pd.DataFrame(
    [['18-24', 334725], ['25-44', 698261], ['45-64', 273087], ['65+', 15035],['<18', 80841]],
    columns=['age_group', 'total_arrests']
)

在此处输入图像描述

如何将最后一行(索引 = 4)移动到数据框的顶部?我需要这样做,因为当我在 matplotlib 中绘制它时,该<18组出现在末尾,而不是开头:

在此处输入图像描述

标签: pythonpandasdataframe

解决方案


与比较列一起使用Series.argsort不等于索引并传递给DataFrame.iloc

df_test = df_test.iloc[df_test['age_group'].ne('<18').argsort()]
print (df_test)
  age_group  total_arrests
4       <18          80841
0     18-24         334725
1     25-44         698261
2     45-64         273087
3       65+          15035

如果值始终是最后一个并且索引值是唯一的更改顺序,索引为DataFrame.loc

df_test = df_test.loc[df_test.index[-1:].tolist() + df_test.index[:-1].tolist()]
print (df_test)
  age_group  total_arrests
4       <18          80841
0     18-24         334725
1     25-44         698261
2     45-64         273087
3       65+          15035

推荐阅读