title: How to drop all rows in pandas dataframe with negative values?
body: <p>I have a dataframe with a mix of column dtypes, float64 and object. </p>
  
  <p>I need to dynamically drop all rows that have any negative values.  Here is what I have so far:</p>
  
  <pre><code> df = df[(df &gt; 0).all(axis=1)]
  </code></pre>
  
  <p>But because some of the columns are not numeric, it basically wipes the entire df.</p>
  
  <p>How can I build this to only consider numerical columns? There are too many columns to do manually do something like this for each column, but this does work if I had to go 1 by 1:</p>
  
  <pre><code>df = df.drop(df[df['col1'] &lt; 0].index, inplace=True)
  </code></pre>
  
  <p>whenever I try putting this into a looping statement I run into errors about comparing strings to ints.  </p>
  
  <p>I just want to scan every column per row, and if I detect a number, and it's negative, drop the entire row.  I feel like I'm making this too hard.</p>