title: How to check if Pandas rows contain any full string or substring of a list?
body: <p>I have a list of strings</p>
  
  <pre><code>list_ = ['abc', 'def', 'xyz']
  </code></pre>
  
  <p>And I have a <code>df</code> with column <code>CheckCol</code>, that I want to check if the values in <code>CheckCol</code> contains any of the whole of substring of the list element. </p>
  
  <p>If it does, I want to extract the original value into a new column <code>NewCol</code>.</p>
  
  <pre><code>CheckCol
  'a'
  'ab'
  'abc'
  'abc-de'
  </code></pre>
  
  <p>Into </p>
  
  <pre><code># What I want
  CheckCol        NewCol
  'a'
  'ab'
  'abc'           'abc'
  'abc-de'       'abc-de'
  </code></pre>
  
  <p>My following codes, however, only recognize the exact full string, but not the substrings I was looking for.</p>
  
  <pre><code>df['NewCol'] = np.where(df['CheckCol'].isin(list_), df['CheckCol'], '')
  </code></pre>
  
  <p>And gives</p>
  
  <pre><code># What I get
  CheckCol        NewCol
  'a'
  'ab'
  'abc'           'abc'
  'abc-de'       
  </code></pre>
  
  <p>Edits: Changed <code>list</code> to <code>list_</code></p>