Possibly related: #13912

This looks wrong to me -- probably a bug?

In [36]: pd.Series(['a', 'b', 'c']).sum()
Out[36]: 'abc'

In [37]: pd.__version__
Out[37]: '0.18.1'

This happens on DataFrames, as well:

In [8]: pd.Series(['a', 'b', 'c']).to_frame().sum()
Out[8]:
0    abc
dtype: object

Note, of course, that summing strings:

In [2]: sum(['a', 'b', 'c'])
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-eba0487fc411> in <module>()
----> 1 sum(['a', 'b', 'c'])

TypeError: unsupported operand type(s) for +: 'int' and 'str'

Interestingly, NumPy has the same (buggy?) behavior on dtype=object arrays:

In [11]: pd.Series(['a', 'b', 'c']).values.sum()
Out[11]: 'abc'

In [12]: pd.Series(['a', 'b', 'c']).values.astype(str).sum()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-12-4e25bf0067a8> in <module>()
----> 1 pd.Series(['a', 'b', 'c']).values.astype(str).sum()

/Users/shoyer/conda/envs/xarray-dev/lib/python3.5/site-packages/numpy/core/_methods.py in _sum(a, axis, dtype, out, keepdims)
     30
     31 def _sum(a, axis=None, dtype=None, out=None, keepdims=False):
---> 32     return umr_sum(a, axis, dtype, out, keepdims)
     33
     34 def _prod(a, axis=None, dtype=None, out=None, keepdims=False):

TypeError: cannot perform reduce with flexible type

Comment From: jreback

this is just following numpy example. I agree it is a bit confusing, though, xref https://github.com/pydata/pandas/issues/9733. shouldn't something like this be fixed upstream? though I suspect a pandas fix would be much quicker.