title: What does pandas' sub operator do?
body: <p>This is coming straight from the tutorial, which I can't understand even after reading the doc.</p>
  
  <pre><code>In [14]: df = DataFrame({'one' : Series(randn(3), index=['a', 'b', 'c']),
     ....:                 'two' : Series(randn(4), index=['a', 'b', 'c', 'd']),
     ....:                 'three' : Series(randn(3), index=['b', 'c', 'd'])})
     ....: 
  
  In [15]: df
  Out[15]: 
          one     three       two
  a -0.626544       NaN -0.351587
  b -0.138894 -0.177289  1.136249
  c  0.011617  0.462215 -0.448789
  d       NaN  1.124472 -1.101558
  
  In [16]: row = df.ix[1]
  
  In [17]: column = df['two']
  
  In [18]: df.sub(row, axis='columns')
  Out[18]: 
          one     three       two
  a -0.487650       NaN -1.487837
  b  0.000000  0.000000  0.000000
  c  0.150512  0.639504 -1.585038
  d       NaN  1.301762 -2.237808
  </code></pre>
  
  <p>Why does the second row turn into 0? Is it being <code>sub</code>-stituted with 0?</p>
  
  <p>Also, when I use <code>row = df.ix[0]</code>, the entire second column turns into <code>NaN</code>. Why?</p>