title: Count appearances of a string throughout columns in pandas
body: <p>Consider the following dataframe:</p>
  
  <pre><code>import pandas as pd
  df = pd.DataFrame(["What is the answer", 
                     "the answer isn't here, but the answer is 42" , 
                     "dogs are nice", 
                     "How are you"], columns=['words'])
  df
                                           words
  0                           What is the answer
  1  the answer isn't here, but the answer is 42
  2                                dogs are nice
  3                                  How are you
  </code></pre>
  
  <p>I want to count the number of appearances of a certain string, that may repeat a few times in each index.</p>
  
  <p>For example, I want to count the number of times <code>the answer</code> appears.
  I tried:</p>
  
  <pre><code>df.words.str.contains(r'the answer').count()
  </code></pre>
  
  <p>Which I hoped for a solution, but the output is <code>4</code>.
  Which I don't understand why. <code>the answer</code> appears 3 times.</p>
  
  <pre><code>What is **the answer**
  **the answer** isn't here, but **the answer** is 42
  </code></pre>
  
  <p>Note: search string may appear more than once in the row</p>