title: What is the difference between `assert_frame_equal` and `equals`
body: <p>I'm curious to find the difference between <code>assert_frame_equal</code> and <code>equal</code>.
  Both are for checking the equality of two data. It applies for <code>assert_series_equal</code> and <code>assert_index_equal</code>. So what is the difference between equals and testing functions?</p>
  
  <p>So far I found was testing functions gives little more flexibility to compare the values, like <code>check_dtpye</code> options etc., and differs from returning values Is this the only difference between them?</p>
  
  <p>or otherwise,  When Should I use testing functions other than equals method?</p>
  
  <pre><code>df1=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10]})
  df2=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10]})
  pd.testing.assert_frame_equal(df1,df2)
  print df1.equals(df2)
  
  pd.testing.assert_series_equal(df1['a'],df2['a'])
  print df1['a'].equals(df2['a'])
  
  pd.testing.assert_index_equal(df1.index,df2.index)
  print df1.index.equals(df2.index)
  </code></pre>