python - 如何在不更改 Pandas 0.20.1 中的列顺序的情况下连接 pandas Dataframes?
问题描述
我有一个单列数据框'new_list',如下所示:
list
0 LAX
1 CHI
2 HOU
我正在连接到我的“global_list”数据框,如下所示:
list src dest
0 LAX 1 0
1 CHI 0 1
希望将“HOU”作为一行添加到“global_list”,同时保持如下顺序:
list src dest
0 LAX 1 0
1 CHI 0 1
2 HOU NaN NaN
但是,当我跑步时global_list = pd.concat([global_list, new_list]).groupby('list', as_index=False).first()
我最终将 src 和 dest 列翻转(我假设是因为它们按字母顺序排序)
list dest src
0 LAX 0 1
1 CHI 1 0
2 HOU NaN NaN
我读过你可以在 concat 语句中设置一个sort=False,但该解决方案适用于更新版本的熊猫(我在 0.20.1 并且无法更新)。在为这个旧版本的熊猫连接时,还有其他方法可以维持秩序吗?
解决方案
在你连接之前
cols = global_list.columns.tolist()
然后在你连接之后你可以重新排序:
global_list = global_list[cols]
如果您无法将 pandas 升级到支持的最新版本,这是一种解决方法。
推荐阅读
- docker - 将 prometheus 数据挂载到主机卷 /mnt/resources/
- python - 在 python 中创建简单的 tar.gz 时会创建嵌套的 tar
- javascript - 使用提示中的值作为 highcharts 导出文件名
- r - 添加列时分解
- c# - 从 WpfEmbeddedBrowser 中删除 Cookie - WPF
- rust - 为什么shiplift 0.6 中的类型说`std::future::Future` 不满足?
- r - 如何优化字符串检测以提高速度?
- javascript - 如何提取和使用从 cy.wrap() 返回的字符串值
- python - Python——数组()VS数组([])
- python - Tkinter:更改菜单栏和标题栏颜色