Отображение версии информационного кадра до и после с использованием Pandas - PullRequest
0 голосов
/ 07 января 2020

------ Исходные данные ----

До:

    Speak English   Length  currentCode     currentName
0   True    1   $A  USA
1   True    2   $AM     Massachusetts
2   True    3   $AMB    Boston
3   True    3   $AMS    Springfield
4   True    3   $AMA    Amherst
5   True    3   $AMP    Plymouth
6   False   1   $D  Germany
7   False   2   $DB     Brandenburg
8   False   3   $DBB    Berlin
9   False   3   $DBD    Dresden

После

    Speak English   Length  futureCode  futureName
0   True    1   $A  America
1   True    2   $AM     Maine
2   True    3   $AMC    Brockton
3   True    3   $AMM    Main
4   False   1   $D  Denmark
5   False   2   $DC     Copenhagen
6   False   3   $DCC    Copper
7   False   3   $DCD    Dresden

Цель:

enter image description here Примечание: Цель в форме сводной таблицы в Excel. Мои коды:

import pandas as pd
before = pd.read_excel(r'/Users/BoBoMann/Desktop/Sequence.xlsx',sheet_name='Before')
after = pd.read_excel(r'/Users/BoBoMann/Desktop/Sequence.xlsx',sheet_name='After')

Попытка № 1: Объединить, но не знаю, как установить индекс Speak Engli sh и Длина потом:

pd.concat([before,after],axis = 1,keys=['Before','After'],join='outer')

Попытка # 2: Установить индекс для каждого фрейма данных, но не может объединить вдоль столбцов, поскольку Pandas повышает ValueError: не может обработать неуникальный мультииндекс!

before = before.set_index(['Speak English','Length']).sort_index(axis = 0)
after = after.set_index(['Speak English','Length']).sort_index(axis = 0) 
pd.concat([before,after],axis = 1,keys=['Current','Future'],join='outer')

Большое спасибо за вашу помощь!

...