#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