Python 合并同一列上的两个数据集
我正在尝试使用一个包含一些有用信息的数据集来创建一个新的列,其中包含这些信息,无论它们是否包含在内 df1 此处的用户是唯一的(无重复) df2 因为有一个公共列,所以我正在考虑在用户上连接这些表。我做了如下尝试:Python 合并同一列上的两个数据集,python,pandas,Python,Pandas,我正在尝试使用一个包含一些有用信息的数据集来创建一个新的列,其中包含这些信息,无论它们是否包含在内 df1 此处的用户是唯一的(无重复) df2 因为有一个公共列,所以我正在考虑在用户上连接这些表。我做了如下尝试: result = pd.merge(df1, df2, on=['User']) 但输出与我预期的不同,即 (预期产出) 您能告诉我上面的代码有什么问题吗?您应该做两件事:1)指定所需的最小列([[['Info',User']])和如何离开,这样您就不会在中合并另一个年列。在合并过
result = pd.merge(df1, df2, on=['User'])
但输出与我预期的不同,即
(预期产出)
您能告诉我上面的代码有什么问题吗?您应该做两件事:1)指定所需的最小列(
[[['Info',User']]
)和如何离开,这样您就不会在中合并另一个年列。在合并过程中,数据帧被翻转:
pd.merge(df2, df1[['Info', 'User']], on=['User'], how='left')
Out[1]:
Date User Year Note Info
0 2012-02-13 user1 2012 NaN 24.0
1 2012-01-11 user4 2011 Paid 24.5
2 2012-02-13 user1 2012 Need review 24.0
3 2012-02-14 user3 2010 NaN 12.0
4 2012-02-13 user2 2012 NaN 0.0
5 2012-02-11 user2 2012 Need review 0.0
我认为您需要使用右内连接
result = pd.merge(df1, df2, how='right', on=['User'])
你期望什么呢?我向你展示了我期望的。这是最后一张桌子。我添加了一个注释以突出显示预期输出,以防不清楚。谢谢实际结果是什么?几行。我没有添加任何其他过滤器。我真的不明白为什么人们会对一个有数据要使用的问题投反对票,以及我尝试过并期望得到的结果。说真的,我不能理解人。那么,下一次,结束这个问题。那会更好!非常感谢大卫。我完全错了,因为我认为内部连接是合并它们的正确方式。谢谢你的解释。没问题@LucaDiMauro。根据我的经验,左
合并是最常见的合并。如果您在merge
中切换数据帧的顺序,则右侧
合并也会执行相同的操作,但大多数人都会执行左侧
合并。我很少看到人们进行右
合并。
Date User Year Note Info
2012-02-13 user1 2012 NA 24
2012-01-11 user4 2011 Paid 24.5
2012-02-13 user1 2012 Need review 24
2012-02-14 user3 2010 NA 12
2012-02-13 user2 2012 NA 0
2012-02-11 user2 2012 Need review 0
pd.merge(df2, df1[['Info', 'User']], on=['User'], how='left')
Out[1]:
Date User Year Note Info
0 2012-02-13 user1 2012 NaN 24.0
1 2012-01-11 user4 2011 Paid 24.5
2 2012-02-13 user1 2012 Need review 24.0
3 2012-02-14 user3 2010 NaN 12.0
4 2012-02-13 user2 2012 NaN 0.0
5 2012-02-11 user2 2012 Need review 0.0
result = pd.merge(df1, df2, how='right', on=['User'])