在熊猫中合并两个数据框

时间:2020-04-24 13:24:48

标签: python pandas

我有2个数据框:

df:

portfolio  symbol  id  var1  var2  var3 

df1:

symbol  sector  market  count 

我要添加从df1到df的列部门和市场。 df1具有用于符号的唯一值,因此比原始数据帧df的数据帧小。

我尝试做:

pd.merge(df,df1,on='symbol',how='outer')

但是输出超出了预期的行数。任何人都可以帮忙这里遗漏了什么。

谢谢

3 个答案:

答案 0 :(得分:1)

您是否尝试过进行内部联接

df.merge(df1, on='symbol', how='inner')

答案 1 :(得分:1)

如果您进行外部联接,则行数将是两个(符号列)中较长的列所具有的行数,因此是df中的一个。如果只需要唯一符号值的数量,则应使用内部联接。

答案 2 :(得分:1)

抱歉,我没有意识到外部联接也会为第二个数据帧值创建行(如果第一个数据帧中不可用)。这就是为什么我要获得额外的行的原因,要删除该行,我添加了df7 = df.dropna(subset = ['symbol'])