【发布时间】:2021-03-13 21:25:41
【问题描述】:
我有两个数据集,df1 和 df2,其中:
我想对 date 和 name 列执行“内部连接” 但是,我也希望对某些列重新排序。
df1
name freeG totalG sku date
a 4 10 hi 10/10/2020
b 10 20 hi 10/10/2020
c 8 10 hello 10/10/2020
d 1 5 hello 10/10/2020
e 1 5 hey 10/10/2020
f 2 5 hey 10/10/2020
g 1 5 hey 10/10/2020
df2
total freeS usedS name date
10 5 5 a 10/10/2020
20 10 10 b 10/10/2020
30 5 25 c 10/10/2020
40 10 30 d 10/10/2020
50 10 40 e 10/10/2020
10 5 5 f 10/10/2020
10 5 5 g 10/10/2020
期望的结果
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']]
但是,我无法使用上述语法加入。任何建议表示赞赏
【问题讨论】:
-
“我无法使用上述语法加入”请描述您当前尝试的问题。输出错了吗?有错误吗?详细信息将帮助我们了解如何更好地帮助您
-
确定 - inner_on = 语法不正确。我正在研究这个
-
如果你想加入,而不是使用 concat,为什么不使用dataframe.join()?
-
好的,谢谢@G.Anderson - 我会试试这个 - 我相信文档只有一个专栏可以加入。我可以添加多个吗?
-
也有帮助:Pandas Merging 101