title: How can I have different types in Pandas Series if Pandas Series uses numpy?
body: <p>As far as I know numpys <a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.dtype.html#numpy.dtype" rel="nofollow noreferrer">ndarrays</a> element must be of same type and pandas series uses <a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html" rel="nofollow noreferrer">ndarray</a> to hold values. But it seems like I am able to append an integer to a Series that holds string. </p>
  
  <p>Sample code I have..</p>
  
  <pre><code>import pandas as pd
  
  sr = pd.Series(['foo'])
  sr = sr.append(pd.Series([1], index=[1]))
  print(type(sr.values))
  print(sr.values.dtype)
  print(type(sr.iloc[0]))
  print(type(sr.iloc[1]))
  </code></pre>
  
  <p>and the output:</p>
  
  <pre><code>&lt;class 'numpy.ndarray'&gt;
  object
  &lt;class 'str'&gt;
  &lt;class 'int'&gt;
  </code></pre>
  
  <p>If the ndarrays type is object, how come int is returned for the item at index loc 1?</p>