在pandas中组合两个数据框。

问题描述 投票:1回答:3

我有2个数据框。

df:

portfolio  symbol  id  var1  var2  var3 

df1.我想从df1中添加部门和市场这两列数据。

symbol  sector  market  count 

我想把df1中的部门和市场列添加到df中。df1的符号值是唯一的,因此数据框比df小,而df是原始数据框。

我试着做了.NET,但输出的结果是比原来的数据框扩展了行。

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

但输出的行数比预期的要多。有谁能帮帮我,这里漏掉了什么。

谢谢你的帮助

python pandas numpy
3个回答
1
投票

你有没有试过做一个内部连接。

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

1
投票

如果你做一个外部连接,行数将是两个列中较长的列(符号列)所拥有的行数,因此是来自df的行数。如果你只想要唯一符号值的数量,你应该使用内连接。


1
投票

我很抱歉,我没有意识到,如果在第一个数据框中没有,外部连接也会为第二个数据框的值创建行,这就是为什么我得到额外行的原因,为了消除这一点,我添加了df7 = df.dropna(subset=['symbol'])

© www.soinside.com 2019 - 2024. All rights reserved.