熊猫版本差异,pd.concat(sort=False)



我曾经为别人写过一些代码。

在代码的某个点,我使用:

new_df = pd.concat([df1, df2, df3], sort=False)

然而,实际运行代码的人使用的是旧版本的Pandas,这与'sort'参数不兼容。他们也没有管理员权限,因此无法更新他们正在使用的Pandas(20.0.1)版本。

如何解决这个问题?代码中是否有一个解决方案,可以防止他的concat函数自动按字母顺序排序列,尽管没有最新版本的Pandas?

您可以将数据框连接起来,然后重新排列列:

new_df = pd.concat([df1, df2, df3])
print(
new_df[df1.columns.tolist() + df2.columns.tolist() + df3.columns.tolist()]
)

EDIT:过滤掉重复的列(当有重叠时):

new_df = pd.concat([df1, df2, df3])
out, seen = [], set()
for c in df1.columns.tolist() + df2.columns.tolist() + df3.columns.tolist():
if c not in seen:
out.append(c)
seen.add(c)
print(new_df[out])

最新更新