真名 发表于 2024-6-6 10:31:52

新手求助一下关于pd.merge的匹配输出的内容问题

本帖最后由 真名 于 2024-6-6 10:32 编辑

我用左表链接右表,希望能反左右表的所有信息显示出来,但最后只匹配的键列和值列,求大佬教一下我
import pandas as pd
import numpy as np
dfl = pd.read_excel(r'D:\上期供应商.xlsx', sheet_name='2.3导出底表')
dfn = pd.read_excel(r'D:\本期供应商.XLSX')
dflgvot = pd.pivot_table(dfl, values=['金额'], index=['供应商', '名称 1'], aggfunc='sum')
dfngvot = pd.pivot_table(dfn, values=['金额'], index=['供应商', '名称 1'], aggfunc='sum')
dflwvot = pd.pivot_table(dfl, values=['金额'], index=['物料', '描述'], aggfunc='sum')
dfnwvot = pd.pivot_table(dfn, values=['金额'], index=['物料', '物料描述'], aggfunc='sum')
print(dflgvot)
print(dfngvot)
print(dflwvot)
print(dfnwvot)
dfgmerg = pd.merge(left=dfngvot,
                   right=dflgvot,
                   left_on='供应商',
                   right_on='供应商',
                   how='left')
dfwmerg = pd.merge(left=dfnwvot,
                   right=dflwvot,
                   left_on='物料',
                   right_on='物料',
                   how='left')
print(dfgmerg)
print(dfwmerg)
dfgmerg.to_excel(r'd:\本期上期g.xlsx',sheet_name='供应商')
dfwmerg.to_excel(r'd:\本期上期w.xlsx',sheet_name='物料')

原表1为

                           金额
物料          描述               
B060102013小箱      -425.25
B060102015小箱      -351.26
B060102021A 小箱       -1300.82
B060102022A 小箱         -27.84
原表2为

表二为
                           金额
物料          物料描述            
B060102013小箱      -556.59
B060102015小箱      -522.43
B060102021A 小箱       -1872.00
B060102022A 小箱      -126.91

最后输出结果:

                金额_x   金额_y
物料                           
B060102013   -556.59-425.25
B060102015   -522.43-351.26
B060102021A -1872.00 -1300.82

链接后只剩编码和金额了,描述和物料描述都没了

真名 发表于 2024-6-6 10:36:46

我是先根据 供应商和物料号分别透视了一下
不过,供应商的编号和名称是一 一对应的,物料的编号和名称也是

真名 发表于 2024-6-6 15:37:23

大佬快来啊
萌新正在死去{:5_104:}
页: [1]
查看完整版本: 新手求助一下关于pd.merge的匹配输出的内容问题