熊猫按名称和日期合并(多列)

时间:2019-05-13 17:22:16

标签: python pandas merge multiple-columns

我希望合并两个数据框,首先按名称合并,然后按日期合并。

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
....

我们将不胜感激任何帮助,我无法弄清楚我在做什么错

3 个答案:

答案 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())

这样,我一直使用相同的数据类型/结构。在寻找相似之处时,我还使用了内部联接(请告知是否应该使用外部联接?)