默认情况下,
groupby输出将分组列作为索引,而不是列,这就是合并失败的原因。
有几种不同的处理方法,最简单的方法可能是
as_index在定义groupby对象时使用参数。
po_grouped_df = poagg_df.groupby(['EID','PCODE'], as_index=False)
然后,您的合并应该按预期方式工作。
In [356]: pd.merge(acc_df, pol_df, on=['EID','PCODE'], how='inner',suffixes=('_Acc','_Po'))Out[356]: EID PCODE SC_Acc EE_Acc SI_Acc PVALUE_Acc EE_Po PVALUE_Po 123 GR 236 40000 1.805222e+31 350 10000 50 1 123 GR 236 40000 1.805222e+31 350 30000 300 2 123 GU 443 12000 8.765549e+87 250 10000 100 3 123 GU 443 12000 8.765549e+87 250 2000 150 SC_Po SI_Po 0 23 40 1 213 140 2 230 400 3 213 140


