如何根据另一个具有相同列但不同顺序的数据框架来重新安排列的顺序[英] How to re-order the columns based on another dataframe with the same columns but different order

本文是小编为大家收集整理的关于如何根据另一个具有相同列但不同顺序的数据框架来重新安排列的顺序的处理方法,想解了如何根据另一个具有相同列但不同顺序的数据框架来重新安排列的顺序的问题怎么解决?如何根据另一个具有相同列但不同顺序的数据框架来重新安排列的顺序问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想知道是否有一种方便的方法可以基于另一个具有相同列但不同顺序的数据框列.或者,我必须做一个循环才能实现吗?

推荐答案

尝试以下方法:

df2 = df2[df1.columns]

演示:

In [1]: df1 = pd.DataFrame(np.random.randint(0, 10, (5,4)), columns=list('abcd'))

In [2]: df2 = pd.DataFrame(np.random.randint(0, 10, (5,4)), columns=list('badc'))

In [3]: df1
Out[3]:
   a  b  c  d
0  8  3  9  6
1  0  6  4  7
2  7  2  0  7
3  0  5  1  8
4  6  2  5  4

In [4]: df2
Out[4]:
   b  a  d  c
0  3  8  0  4
1  7  7  4  2
2  2  7  3  8
3  2  4  9  6
4  3  4  7  1

In [5]: df2 = df2[df1.columns]

In [6]: df2
Out[6]:
   a  b  c  d
0  8  3  4  0
1  7  7  2  4
2  7  2  8  3
3  4  2  6  9
4  4  3  1  7

替代解决方案:

df2 = df2.reindex_axis(df1.columns, axis=1)

注意:pandas reindex_axis自0.21.0版本以来被弃用:改用reindex.

df2 = df2.reindex(df1.columns, axis=1)

本文地址:https://www.itbaoku.cn/post/1727910.html