如何将一个数据框中的列与diff数据框中的列的顺序对齐?

时间:2019-07-11 19:58:13

标签: python pandas dataframe

我有一个按特定顺序排列的166列和63k行的数据框。 我有166列和35k行的第二个数据框。 第二个数据帧中的166列与第一个数据帧的顺序不同。

如何强制第二个数据框与第一个数据框的列顺序对齐? (这166个列在两个数据框中的名称相同。)

在搜索解决方案时出现了一种方法:

df2 = df2[['col1','col2','col3','col4']]

但是有161列,这太麻烦了。

X_18 #dataframe 1
X_19 #dataframe 2

# I tried to re-order both on the same conditions using the following code:

X_18.columns.sort_values()
X_19.columns.sort_values()

我希望列名具有相同的顺序,但是在对两者都应用排序后比较两者时,似乎顺序不是字母顺序的。

示例:

DataFrame1-Index(['Example 1','Example 2','Example 3'
       ...
       'Example 55','Example 23'],
      dtype='object', length=161)

DataFrame2-Index(['Example 1','Example 2','Example 3'
       ...
       'Example 45','Example 33'],
      dtype='object', length=161)

1 个答案:

答案 0 :(得分:0)

您可以使用其他方法。正如我想的那样,您希望具有自然排序的列'col9','col10','col11'等,您可以对每个数据框使用natsorted:

class MyWinController: NSWindowController {

    override func windowDidLoad() {
        super.windowDidLoad()
        self.window?.isOpaque = false
        self.window?.backgroundColor = .clear

    }

}