Pandas合并pivot_table和数据帧

时间:2015-10-31 02:55:21

标签: python python-2.7 pandas

如何合并pandas数据透视表和数据框,其中数据透视表中的组合列位于索引中,数据框中的组合列位于列标签中

数据透视表是

                                 perc                                   
odate                    0001-255-255 2015-09-27 2015-09-28 2015-09-29   
bts_name                                                                 
0001_Durgacomplex_NBSNL           100        100        100        100   
0002_Shivanagar_area_Bdr          100        100        100        100   
0003_Old_city_Bidar               100        100        100        100   
0004_Bidar_Mw_Station             100        100        100        100   
0005_Bidri_colony                 100        100        100        100 

数据框是

ssaname                bts_name    make tech site_type taluka
0  Bangalore   2882_Brigade_Road_III  HUAWEI   3G     NBSNL   BTS3
1  Bangalore   2883_Infantry_Road_II  HUAWEI   3G        IP   BTS3
2  Bangalore           2884_DVG_Road  HUAWEI   3G     NBSNL   BTS1
3  Bangalore  2886_Kempegowda_Nagara  HUAWEI   3G     NBSNL   BTS1
4  Bangalore     2887_Minerva_Circle  HUAWEI   3G     NBSNL   BTS1

1 个答案:

答案 0 :(得分:0)

您可以尝试在pivot_table重置索引,然后获得正常的df。之后,您可以合并dfs 简单的例子:

X

如果您有MultiIndex列,则必须先进行droplevel,然后再进行reset_index

df1 = pd.DataFrame({
              'cat':[1,1,1,2,2,2,3,3, 3],
              'val':[1,1,1,1,1,1,1,1, 1]
})
df2 = df1.copy()
pt = pd.pivot_table(df1, index='cat', aggfunc=len)
pt.reset_index(inplace=True)
pt
pd.merge(df2, pt, how='inner', on='cat' )