Very, very surprised this bug isn't caught by the test suite. df1 = pandas.DataFrame({'a':{True:1,False:5},'b':{True:7,False:8}}) df2 = pandas.DataFrame({'a':{True:1,False:5},'c':{True:7,False:8}}) ``` In [15]: df1.add(df2, fill_value=0) Out[15]: a b c False 10 NaN NaN True 2 NaN NaN ```