繁体   English   中英

如何使用 python 合并或加入 pandas 数据透视表

[英]how to merge or join pandas pivot table with python

我尝试合并或加入两个 Pandas 的数据透视表,尝试使用合并,它确实有效,但结果出乎我的意料,它给了我两个表的副本

df1.fillna('', inplace=True)
df1.reset_index(inplace=True)
df2.fillna('', inplace=True)
df2.reset_index(inplace=True)
df = pd.merge(df1, df2, how='left', on=['KEY1', 'KEY2'])

第一个数据透视表:

KEY1    KEY2    KEY3    Column_A0   Column_A1   Column_A2
Row_X0  Row_Y0  Row_Z0  123                     123
        Row_Y1  Row_Z0               456    
                Row_Z1  789                     789
Row_X1  Row_Y0  Row_Z0               123    
                Row_Z1  789     
                Row_Z2  456          789    

第二个数据透视表:

KEY1    KEY2    KEY3    Column_B0   Column_B1   Column_B2   Column_B3
Row_X0  Row_Y0  Row_W0  1           234     
                Row_W1  2           345     
                Row_W2  3           456     
        Row_Y1  Row_W0  4           567         1       234
                Row_W1  7           890         2       345
                Row_W2  8           901         3       456
                Row_W3  9           12          4       567
Row_X1  Row_Y0  Row_W0                          7       890
                Row_W1                          8       901
                Row_W2                          9       12

我期望的结果:

KEY1    KEY2    KEY3_X   Column_A0  Column_A1   Column_A2   KEY3_Y  Column_B0   Column_B1   Column_B2   Column_B3
Row_X0  Row_Y0  Row_Z0   123                    123         Row_W0  1           234     
                                                            Row_W1  2           345     
                                                            Row_W2  3           456     
        Row_Y1  Row_Z0              456                     Row_W0  4           567         1            234
                Row_Z1   789                    789         Row_W1  7           890         2            345
                                                            Row_W2  8           901         3            456
                                                            Row_W3  9           12          4            567
                                                            Row_W0                          7            890
Row_X1  Row_Y0  Row_Z0              123                     Row_W1                          8            901
                Row_Z1   789                                Row_W2                          9            12
                Row_Z2   456                    789                     

我能做些什么来实现这一目标吗? 谢谢你

Concat()按行或列。 pd.concat函数允许您使用列和/或行来创建表格

暂无
暂无

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

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