【问题标题】:vlookup equivalent to fill existing table using pandasvlookup 相当于使用 pandas 填充现有表
【发布时间】:2021-09-12 11:17:50
【问题描述】:

场景:

  • python 中有三个以上的数据透视表
  • 一个现有的表,我想在其中根据不同数据透视表中的每行和每列填充值

我在 excel 中制作了示例,想在 python 中自动化。 (在python中使用pivot进行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      ------         -------

【问题讨论】:

  • 所以你只想合并两个数据框?

标签: pandas join vlookup


【解决方案1】:

使用reducepd.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

【讨论】:

    猜你喜欢
    • 2015-09-03
    • 2019-03-10
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 2015-06-23
    • 2016-11-15
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多