pandas объединить кадры данных переместить новый столбец с конца - PullRequest
0 голосов
/ 26 февраля 2020

Я объединяю два фрейма данных, который работает нормально, но новый столбец помещается в конец. Я хотел бы, чтобы это был 3-й столбец или индекс 2. Пока у меня есть это, которое работает, но мне интересно, есть ли лучший способ.

overlap  = overlap.merge(df_comp, how='left')
cols = overlap.columns.tolist()
cols.insert(2, cols.pop(cols.index('cr')))
overlap = overlap.reindex(columns= cols)

Для дальнейшего объяснения имен и количества столбцов если окончательный кадр данных будет меняться изо дня в день, то решение должно быть динамическим c. Есть ли чистый способ сделать это одним или двумя линиями?

1 Ответ

1 голос
/ 26 февраля 2020

Один быстрый взлом состоит в том, чтобы установить первые 2 столбца и последние добавленные столбцы в качестве индекса, а затем сбросить индекс, который поместит их в качестве первых 3 столбцов:

import numpy as np

overlap.set_index(overlap.columns[np.r_[0:2,-1]].to_list()).reset_index()

np.r_[0:2, -1] по существу занимает имена столбцов для столбцов 0, 1 и -1 (последний добавленный столбец).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...