繁体   English   中英

连接两个熊猫数据透视表

[英]join two pandas pivot tables

考虑到两个相似的熊猫数据透视表,如何将这两个表连接到它们的索引上,例如country 例如:

df1.pivot_table(index='country', columns='year', values=['rep','sales'], aggfunc='first')

          rep                       sales                  
year     2013  2014    2015  2016   2013  2014  2015  2016
country                                                  
fr       None  kyle  claire  None   None   10    20    None
uk       kyle  None    None  john    12   None  None   10
usa      None  None    None  john   None  None  None   21


df2.pivot_table(index='country', columns='year', values=['rep','sales'], aggfunc='first')

          rep                          sales                  
year     2013  2014    2015   2016     2013   2014  2015  2016
country                                                  
fr       120   marc   debbie  None     None    0    56   None
uk       marc  None    100    peter    45    None   65    10
ca       89    None    None   peter    None   33   None   78

如何加入这些表格

是模糊的。 有很多方法可以连接这些表。

设定

idx = pd.Index(['fr', 'uk', 'usa'], name='country')
col = pd.MultiIndex.from_product([['rep', 'sales'], range(2013, 2017)],
                                 names=[None, 'year'])

p1 = pd.DataFrame([
        [None, 'kyle', 'claire', None, None, 10, 20, None],
        ['kyle', None, None, 'john', 12, None, None, 10],
        [None, None, None, 'john', None, None, None, 21]
    ], idx, col, object)

p2 = pd.DataFrame([
        [120, 'marc', 'debbie', None, None, 0, 56, None],
        ['marc', None, 100, 'peter', 45, None, 65, 10],
        [89, None, None, 'peter', None, 33, None, 78]
    ], idx, col, object)

可能的解决方案

p1.combine_first(p2)

在此处输入图片说明


pd.concat([p1, p2], axis=1, keys=['p1', 'p2'])

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM