title: Pandas mul with dense with sparse
body: <p>I have a time-indexed <code>DataFrame</code> where only a subset of the data is valid (for some 'external' reason). </p>
  
  <p>I have made a time-indexed <code>Series</code> of <code>1</code>s for valid data and <code>NaN</code>s where the data are invalid so I can use this as a mask on my <code>DataFrame</code>.</p>
  
  <p>This <code>Series</code> is sparse.</p>
  
  <pre><code>import pandas as pd
  import numpy as np
  
  rng = pd.date_range(start='2014-07-09', periods=5, freq='D')
  data = np.random.randn(len(rng), 3)
  col_names = ['spam', 'ham', 'eggs']    
  df = pd.DataFrame(data=data, index=rng, columns=col_names)    
  valid_days = np.nan * np.ones_like(df.spam.values)
  valid_days[2] =  1    
  validity_mask = pd.SparseSeries(data=valid_days, index=rng)
  </code></pre>
  
  <p>I expected <code>df.mul(validity_mask, axis=0)</code> to give me 1 set of non-NaN <code>spam, ham, eggs</code>, instead, I got:</p>
  
  <pre><code>In [2]: df.mul(validity_mask, axis=0)
  AssertionError: length mismatch: 5 vs. 3
  </code></pre>