我正在尝试使用python脚本从excel.xlsx合并2张纸。我想当sheet1('CLASS')与sheet2('C_MAP')匹配时,在工作表1或新工作表中的CLASS之后合并DSC和ASC。
为澄清这一点,我附上了我的Excel工作表。
这是我的Sheet1:
P_MAP Q_GROUP CLASS
0 ram 2 pink
1 4 silver
2 sham 5 green
3 0 default
4 nil 2 pink
它包含P_MAP,Q_GROUP,CLASS
这是我的Sheet2:
C_MAP DSC ASC
0 pink h1 match
1 green h2 match
2 silver h3 match
它包含C_MAP,ASC,DSC
所以,我希望当CLASS匹配C_MAP时,应该添加ASC和DSC,如果不匹配,则添加NA。
我想要的输出将是这样的:
P_MAP Q_GROUP CLASS DSC ASC
0 ram 2 pink h1 match
1 4 silver h3 match
2 sham 5 green h2 match
3 0 default 0 NA
4 nil 2 pink h1 match
答案 0 :(得分:1)
您想要的是pd.merge
:
df1 = pd.read_excel('filename.xlsx', sheet_name='Sheet1') # fill in the correct excel filename
df2 = pd.read_excel('filename.xlsx', sheet_name='Sheet2') # fill in the correct excel filename
df_final = df1.merge(df2,
left_on='CLASS',
right_on='C_MAP',
how='left').drop('C_MAP', axis=1)
df_final.to_excel('filename2.xlsx')
输出
P_MAP Q_GROUP CLASS DSC ASC
0 ram 2 pink h1 match
1 4 silver h3 match
2 sham 5 green h2 match
3 0 default NaN NaN
4 nil 2 pink h1 match