Python 不平等

Python 不平等,python,pandas,Python,Pandas,df1: df2: 输出应为: Ton1 Ton2 Ton3 p s 150 p t 110 p s 108 q t 409 q s 410 q t 406 合并应基于逻辑Ton3应比Con3高6-10% 逻辑:(Ton3=>(6%*Con3)+Con3)和(Ton3=

df1:

df2:

输出应为:

Ton1    Ton2    Ton3
p       s       150
p       t       110
p       s       108
q       t       409
q       s       410
q       t       406
合并应基于逻辑Ton3应比Con3高6-10%

逻辑:(Ton3=>(6%*Con3)+Con3)和(Ton3=<(10%*Con3)+Con3)

数据帧生成

pd.merge(df1,df2,left_on=['Con1','Con2']+logic, right_on=['Ton1','Ton2']+logic, how='left')
合并数据帧并应用给定条件:

df1 = pd.DataFrame({'Con1':['p','q','p','q'], 'Con2':['s','t','t','s'], 'Con3':[100,200,300,400]})
df2 = pd.DataFrame({'Ton1':['p','p','p','q','q','q'], 'Ton2':['s','t','s','t','s','t'], 'Ton3':[150,110,108,409,410,406]})

我建议你加入数据,这样其他人可以复制它,而不是包括图像。我会记住这一点。我理解你的观点,首先合并数据帧,然后单独提出条件。谢谢,伙计:)
pd.merge(df1,df2,left_on=['Con1','Con2']+logic, right_on=['Ton1','Ton2']+logic, how='left')
df1 = pd.DataFrame({'Con1':['p','q','p','q'], 'Con2':['s','t','t','s'], 'Con3':[100,200,300,400]})
df2 = pd.DataFrame({'Ton1':['p','p','p','q','q','q'], 'Ton2':['s','t','s','t','s','t'], 'Ton3':[150,110,108,409,410,406]})
df = pd.merge(df1,df2,how='left',left_on=['Con1','Con2'], right_on=['Ton1','Ton2'])
df = df[(df['Ton3']>=((0.06*df['Con3']) +df['Con3'])) & (df['Ton3']<=((0.1*df['Con3']) +df['Con3']))]
print(df)
df = pd.merge(df1,df,how='left',left_on=['Con1','Con2','Con3'], right_on=['Con1','Con2','Con3'])
print(df)