Как выровнять столбцы в одном кадре данных в том же порядке, что и столбцы в кадре различий? - PullRequest
2 голосов
/ 11 июля 2019

У меня есть 166 столбцов и 63 тыс. Строк данных в определенном порядке. У меня есть второй кадр данных из 166 столбцов и 35 тыс. Строк. 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 голосов
/ 12 июля 2019

Вы можете использовать другой подход.Я предполагаю, что вы хотите, чтобы столбцы сортировались естественным образом 'col9', 'col10', 'col11' и т. Д., Вы можете использовать natsorted для каждого из фреймов данных:

import pandas as pd
from natsort import natsorted

df = df.reindex(natsorted(df.columns)), axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...