合并两个不重叠的列并创建新列

时间:2016-06-13 23:03:55

标签: python pandas merge

import pandas as pd

df1 = pd.DataFrame([["2014", "q2"]],
                   columns=('Year', 'Quarter'))

df2 = pd.DataFrame([["2016", "q1"], 
                    ["2015", "q1"]],
                   columns=('Year', 'Quarter'))


print(df1.merge(df2, on='Year', how='outer'))

结果:

   Year   Quarter_x    Quarter_y
0   2016    NaN         q1
1   2015    NaN         q1
2   2014    q2          NaN

我想得到的是:

   Year     Quarter
0  2016      q1
1  2015      q1
2  2014      q2

使用merge()或其他函数有一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用:

df1.merge(df2, on=['Year', 'Quarter'], how='outer').dropna()

得到:

   Year Quarter
0  2014      q2
1  2016      q1
2  2015      q1

您还可以查看pd.concat()。