Да, вы можете использовать слияние для того, что вы хотите:
df1 = pd.DataFrame({"C1": ["A","B", "C", "D", "F" ] , "C2": [4,5,8,6,2]})
df2 = pd.DataFrame({"C1": ["A","C", "D", "E", "G" ], "C2": [8,6,9,4,7]})
pd.merge(df1, df2, on="C1", how="outer").sort_values("C1")
Это дает следующее
C1 C2_x C2_y
0 A 4.0 8.0
1 B 5.0 NaN
2 C 8.0 6.0
3 D 6.0 9.0
5 E NaN 4.0
4 F 2.0 NaN
6 G NaN 7.0