使用python执行内部联接,并对原始列重新排序
我有两个数据集,df1和df2,其中: 我想在日期和名称列上执行“内部联接” 不过,我也希望对一些专栏重新排序 df1 df2 期望的结果使用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
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