title: Pandas, loc vs non loc for boolean indexing
body: <p>All the research I do point to using <code>loc</code> as the way to filter a dataframe by a col(s) value(s), today I was reading <a href="https://pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html" rel="noreferrer">this</a> and I discovered by the examples I tested, that <code>loc</code> isn't really needed when filtering cols by it's values:</p>
  <p>EX:</p>
  <pre><code>df = pd.DataFrame(np.arange(0, 20, 0.5).reshape(8, 5), columns=['a', 'b', 'c', 'd', 'e'])    
  
  df.loc[df['a'] &gt;= 15]
  
        a     b     c     d     e
  6  15.0  15.5  16.0  16.5  17.0
  7  17.5  18.0  18.5  19.0  19.5
  
  df[df['a'] &gt;= 15]
  
        a     b     c     d     e
  6  15.0  15.5  16.0  16.5  17.0
  7  17.5  18.0  18.5  19.0  19.5
  </code></pre>
  <p><strong>Note: I do know that doing <code>loc</code> or <code>iloc</code> return the rows by it's index and the position. I'm not comparing based on this functionality.</strong></p>
  <p>But when filtering, doing &quot;<code>where</code>&quot; clauses what's the difference between using or not using <code>loc</code>? If any. And why do all the examples I come across regarding this subject use <code>loc</code>?</p>