在Pandas中使用多个 Dataframe

kzipqqlq  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(162)

我是新来的python,请帮助我解决这个问题。
我有两个 Dataframe :

DF1       |        DF2

Name      |       Name Price Colour    
AB        |        AB    15     red
BC        |        BC    20     white
TB        |        TB    23     blue
QT        |        QT    52     orange
YU        |        YU    55     pink

我想创建第3个 Dataframe ,作为(请告诉我如何获得它):

AB_Price  AB_Colour BC_Price  BC_Colour   TB_Price   TB_Colour  QC_Price  QC_Colour   YU_Price   YU_Colour
15         red        20        white      23           blue       52       Orange      55         pink

我已经尝试转置方法在Pandas,但它没有给我想要的输出。请帮助我如何将我得到的第三个 Dataframe 作为我最终想要的输出。

zdwk9cvp

zdwk9cvp1#

假设你想使用df1作为一个Name列表保存在df2中,并重新塑造df2,合并布尔索引和一个pivot,然后sort_index,并用swaplevelmap扁平化MultiIndex:

df3 = (df2
 .loc[df2['Name'].isin(df1['Name'])]
 .assign(index=df2.groupby('Name').cumcount())
 .pivot(index='index', columns='Name')
 .sort_index(level='Name', axis=1)
 .rename_axis(index=None)
)

df3.columns = df3.columns.swaplevel().map('_'.join)
print(df3)

输出:

AB_Colour  AB_Price BC_Colour  BC_Price QT_Colour  QT_Price TB_Colour  TB_Price YU_Colour  YU_Price
0       red        15     white        20    orange        52      blue        23      pink        55

相关问题