使用python执行内部联接,并对原始列重新排序

使用python执行内部联接,并对原始列重新排序,python,pandas,join,merge,Python,Pandas,Join,Merge,我有两个数据集,df1和df2,其中: 我想在日期和名称列上执行“内部联接” 不过,我也希望对一些专栏重新排序 df1 df2 期望的结果 date name freeG totalG sku usedS freeS total 10/10/2020 a 4 10 hi 5 5 10 10/10/2020 b 10 20 hi 10

我有两个数据集,df1和df2,其中:

我想在日期名称列上执行“内部联接” 不过,我也希望对一些专栏重新排序

df1

df2

期望的结果

date           name freeG   totalG  sku     usedS   freeS   total  
10/10/2020      a   4       10      hi      5       5       10
10/10/2020      b   10      20      hi      10      10      20
10/10/2020      c   8       10      hello   25      5       30
10/10/2020      d   1       5       hello   30      10      40
10/10/2020      e   1       5       hey     40      10      50
10/10/2020      f   2       5       hey     5       5       10
10/10/2020      g   1       5       hey     5       5       10
这就是我正在做的

import pandas as pd
import numpy as np


new = pd.concat([df1, df2], axis=1, join='inner', inner_on=['date','name'])
//列的更改顺序

new1 = new[['date', 'name', 'freeG', 'totalG', 'sku', 'usedS', 'freeS', 'total']]

但是,我无法使用上述语法加入。感谢您的任何建议

“我无法使用上述语法加入”请描述您当前的尝试有什么问题。输出错误吗?有错误吗?详细信息将帮助我们了解如何更好地帮助您ure-inner_on=语法不正确。我现在正在研究这一点,而不是使用concat如果你想加入,为什么不直接使用呢?好的,谢谢@G.Anderson-我会试试这个-我相信文档只有一个专栏可以加入。我可以添加多个吗?也很有帮助:谢谢@wwnde-我不确定加入时使用的语法是否正确。我用的是“内开”。谢谢你哦,你好@Wwnde现在我得到了这个错误:语法错误:解析时意外的EOF-也许我需要双引号?它指向这一部分:on=['name','date'])我猜出来了——我去掉了括号。我刚才只参加了一个专栏。我做到了:join=pd.merge(df1,df2 how='internal',on='Name')-也许当您在多个列上使用[]进行连接时?非常感谢。
new = pd.merge(df1, df2, how='inner',on=['name', 'date'])#merge
new['total']=new.freeS.add(new.usedS)#compute  total

new1 = new[['date', 'name', 'freeG', 'totalG', 'sku', 'usedS', 'freeS', 'total']]   # align columns
new1
new1 = new[['date', 'name', 'freeG', 'totalG', 'sku', 'usedS', 'freeS', 'total']]
new = pd.merge(df1, df2, how='inner',on=['name', 'date'])#merge
new['total']=new.freeS.add(new.usedS)#compute  total

new1 = new[['date', 'name', 'freeG', 'totalG', 'sku', 'usedS', 'freeS', 'total']]   # align columns
new1