Binary operator functions failure?
Hi,

I run the following code which uses the binary operator function .mul to multiply a dataframe by 1.0 and then assert that the operation should result in the same dataframe, however, the test fails indeterminately?

```
import pandas as pd, numpy as np
from pandas.util.testing import assert_frame_equal
np.random.seed(42)

d_index = pd.date_range(start='2000-01-01', end='2015-07-01', freq='B')
t_index = np.sort(np.random.choice(d_index,2000,replace=False))
tmp = pd.DataFrame(np.ones((t_index.shape[0], 1000)), index=t_index)

def same_dataframes(df1,df2):
    try:
        assert_frame_equal(df1,df2)
    except:        
        return False
    return True

for i in range(100):    
    if not same_dataframes(tmp.mul(1.0, axis=1), tmp.mul(1.0, axis=1)):        
        print i, 'The Frames Are Not Equal'
```

It returns the following:

```
2 The Frames Are Not Equal
4 The Frames Are Not Equal
9 The Frames Are Not Equal
17 The Frames Are Not Equal
20 The Frames Are Not Equal
62 The Frames Are Not Equal
63 The Frames Are Not Equal
67 The Frames Are Not Equal
69 The Frames Are Not Equal
85 The Frames Are Not Equal
```

Additionally, when I try the following it passes every time:

```
 for i in range(500):    
     if not same_dataframes(tmp.apply(lambda x: x * 1.0), tmp.apply(lambda x: x * 1.0)):        
         print i, 'The Frames Are Not Equal'
```

I tried running other binary operators such as .ge, .gt, .lt, .le and also received fails in random cases

Thank you
