首页 > 解决方案 > 如何在不更改 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 并且无法更新)。在为这个旧版本的熊猫连接时,还有其他方法可以维持秩序吗?

标签: pythonpandasdataframe

解决方案


在你连接之前

cols = global_list.columns.tolist()

然后在你连接之后你可以重新排序:

global_list = global_list[cols]

如果您无法将 pandas 升级到支持的最新版本,这是一种解决方法。


推荐阅读