It is not intuitive as the operation shall happen only if both frame has value on that column. If only one of them has value, the output shall be left as missing showing the operator cannot be completed. That's the expected result from pandas.
df1 = pd.DataFrame([[1, 3], [2, 4]],
columns=['a', 'b'])
df2 = pd.DataFrame([[5, 7], [6, 8]],
columns=['b', 'c'])
df1 + df2
a b c
0 NaN 8 NaN
1 NaN 10 NaN
Example:
I expect result shall be
But the current result is
It's because of the implementation of Frame.zip left uncommon columns unmodified. https://github.com/fslaborg/Deedle/blob/master/src/Deedle/Frame.fs#L237
It is not intuitive as the operation shall happen only if both frame has value on that column. If only one of them has value, the output shall be left as missing showing the operator cannot be completed. That's the expected result from pandas.