python - 如何在 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
组出现在末尾,而不是开头:
解决方案
与比较列一起使用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
推荐阅读
- python - 如何绕过 Keras pad_sequences() 将浮点值舍入为零?
- java - 高 I/O Java 进程在 Docker 容器中运行时始终在 JavaThread 中获得信号 11 SIGSEGV
- javascript - 使用 p5 像素填充的 Percularities
- amcharts - 如何从 amCharts v4 中的 XYChartScrollbar 中删除系列?
- python - 如何在虚拟环境中添加到 pythonpath
- .net - 具有主详细信息的 Blazor Grid
- node.js - axios 自动同步标头/CORS 错误
- python - 如何将数据帧附加到循环内的现有数据帧
- java - 使用 Java 的 Hello World 撒克逊人
- php - 用户访问时隐藏/屏蔽 URL