title: How to add string numbers in pandas
body: <p>I have following Datarame</p>
  
  <pre><code>df = pd.DataFrame({
      'col_1': [0, 1, 2, 3],
      'col_2': [4, 5, 6, 7],
      'col_3': [14, 15, 16, 19]
  })
  </code></pre>
  
  <p>I try to convert the numeric to string, and then combine each row into one string</p>
  
  <p>I can achieve this by using :</p>
  
  <pre><code>df.apply(lambda x : ''.join(x.astype(str)),1) 
  
  Out[209]: 
  0    0414
  1    1515
  2    2616
  3    3719
  dtype: object# notice here dtype is object
  </code></pre>
  
  <hr>
  
  <p><strong><em>This is the question</em></strong></p>
  
  <p>Then , I try to using <code>sum</code></p>
  
  <pre><code>df.astype(str).sum(1)
  Out[211]: 
  0     414.0
  1    1515.0
  2    2616.0
  3    3719.0
  dtype: float64
  </code></pre>
  
  <p>Notice here the <code>dtype</code> become <code>float</code> not <code>object</code>.</p>
  
  <hr>
  
  <p>Here is more information :</p>
  
  <pre><code>df.astype(str).applymap(type)
  Out[221]: 
             col_1          col_2          col_3
  0  &lt;class 'str'&gt;  &lt;class 'str'&gt;  &lt;class 'str'&gt;
  1  &lt;class 'str'&gt;  &lt;class 'str'&gt;  &lt;class 'str'&gt;
  2  &lt;class 'str'&gt;  &lt;class 'str'&gt;  &lt;class 'str'&gt;
  3  &lt;class 'str'&gt;  &lt;class 'str'&gt;  &lt;class 'str'&gt;
  </code></pre>
  
  <p><strong><em>Why <code>sum</code> have this wired behavior? Is there any way to block it convert <code>str</code> back to <code>float</code> ?</em></strong></p>
  
  <p>Thanks for your help :-)</p>