vlookup эквивалентен заполнению существующей таблицы с помощью панд

#pandas #join #vlookup

Вопрос:

Сценарий:

  • в python существует более трех сводных таблиц
  • одна существующая таблица, в которой я хочу заполнить значение по строке и столбцу из другой сводной таблицы

Я сделал образец в excel ,хочу автоматизировать на python. (В python с использованием pivot После изменения имени сводного столбца)

 Pivot1          Pivot2  
            
Name Sum of English Average     Name    Sum of Maths Average
Ni   7.25                         Ni    7.25
Pi  11.25                         Pi    11.25
Si  12.25                         Si    12.25
Ti  17.25                         Ti    17.25
Vi  9.75                          Vi    9.75
Grand Total 57.75       Grand Total 57.75
    
    
 

Требуемая таблица для заполнения

 English Avg       Maths Avg     
Ni      -----          ------
Pi      ------         ------
Si      ------         -------
 

введите описание изображения здесь

Комментарии:

1. Итак, вы просто хотите объединить два кадра данных?

Ответ №1:

Использовать reduce и pd.merge :

 import pandas as pd
from functools import reduce

names = ['Ni', 'Pi', 'Si']

df = reduce(lambda piv1, piv2: pd.merge(piv1.loc[piv1['Name'].isin(names)],
                                        piv2, on='Name', how='left'),
            [pivot1, pivot2, pivot3])
 
 >>> df
  Name  Sum of English Average  Sum of Maths Average  Sum of History Average
0   Ni                    7.25                  7.25                    7.25
1   Pi                   11.25                 11.25                   11.25
2   Si                   12.25                 12.25                   12.25