我希望合并两个数据框,首先按名称合并,然后按日期合并。
df 1看起来像这样
symbol. X. X. X. X. date
AA. 2018-01-16
AA. 2018-05-04
....
然后是df2
symbol. X. X. X. X. date
AA. 2018-01-03
AA. 2018-01-03
我尝试了以下几种变化:
data = pd.merge(df1, df2, left_on = ['symbol', 'date'], how = 'left')
我要做的就是数据输出的左联接:
symbol. X. X. X. date
AA. 2018-01-03
AA. 2018-01-04
....
我们将不胜感激任何帮助,我无法弄清楚我在做什么错
答案 0 :(得分:2)
要按多个列合并两个数据框,可以使用
data = pd.merge(df1, df2, on=['symbol','date'], how='left')
如果列名不同,您也可以使用
data = pd.merge(df1, df2, left_on=['symbol','date'], right_on=['symbol_2','date_2'], how='left')
希望可以为您提供帮助:)
答案 1 :(得分:0)
要根据您的情况合并数据框,您可以尝试
dfFinal = df2.merge(df1[['Symbol']], on='Symbol', how='outer')
答案 2 :(得分:0)
好的,这就是我所做的,我回去使用了
df1['date'].apply(lambda x: x.date())
df2['date'].apply(lambda x: x.date())
这样,我一直使用相同的数据类型/结构。在寻找相似之处时,我还使用了内部联接(请告知是否应该使用外部联接?)