我有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')
但是输出超出了预期的行数。任何人都可以帮忙这里遗漏了什么。
谢谢
答案 0 :(得分:1)
您是否尝试过进行内部联接
df.merge(df1, on='symbol', how='inner')
答案 1 :(得分:1)
如果您进行外部联接,则行数将是两个(符号列)中较长的列所具有的行数,因此是df中的一个。如果只需要唯一符号值的数量,则应使用内部联接。
答案 2 :(得分:1)
抱歉,我没有意识到外部联接也会为第二个数据帧值创建行(如果第一个数据帧中不可用)。这就是为什么我要获得额外的行的原因,要删除该行,我添加了df7 = df.dropna(subset = ['symbol'])