我认为您需要首先转换两列,to_datetime
因为需要相同的内容dtypes
:
df1.month = pd.to_datetime(df1.month)
df2.month = pd.to_datetime(df2.month)
print (pd.merge(df2, df1, how='outer', on='month'))
factor month amt
0 1.000000 2015-02-01 1.549368e+06
1 1.000000 2015-03-01 2.175802e+06
2 1.000000 2015-04-01 1.915613e+06
3 1.000000 2015-05-01 1.703064e+06
4 0.998897 2015-06-01 1.770041e+06
#convert to str date column
df2.month = df2.month.astype(str)
print (pd.merge(df2, df1, how='outer', on='month'))
factor month amt
0 1.000000 2015-02-01 1.549368e+06
1 1.000000 2015-03-01 2.175802e+06
2 1.000000 2015-04-01 1.915613e+06
3 1.000000 2015-05-01 1.703064e+06
4 0.998897 2015-06-01 1.770041e+06