title: Apply multiple string containment filters to pandas dataframe using dictionary
body: <p>I need to set a filter on multiple columns based on string containment which will be specified in the dict <code>column_filters</code> while ignoring text case using <code>toupper()</code> or something along those lines ... for example</p>
  
  <pre><code>column_filters = {'COLUMN_1': ['drum', 'gui'], 'COLUMN_2': ['sta', 'kic']}
  
  df = pd.DataFrame({'COLUMN_1': ['DrumSet', 'GUITAR', 'String', 'Bass', 'Violin'],
                     'COLUMN_2': ['STAND', 'DO', 'KICKSET', 'CAT', 'CELLO'],
                     'COLUMN_3': ['LOSER', 'LOVE', 'LICKING', 'STICK', 'BOLOGNA'])
  </code></pre>
  
  <p>DataFrame to filter based On <code>COLUMN_FILTERS</code> dict:</p>
  
  <pre><code>         COLUMN_1   COLUMN_2    COLUMN_3
        0 DrumSet      STAND       LOSER
        1 GUITAR       DO          LOVE
        2 String       KICKSET     LICKING
        3 Bass         CAT         STICK
        4 Violin       CELLO       BOLOGNA
  </code></pre>
  
  <p>Result:</p>
  
  <pre><code>    COLUMN_1    COLUMN_2     COLUMN_3
  0   DrumSet      STAND       LOSER
  1   GUITAR       DO          LOVE
  2   String       KICKSET     LICKING
  </code></pre>