DataFrame: damage data integrity in conversion and iterations
#### Code Sample, a copy-pastable example if possible

```python
# Your code here
import pandas as pd
d = {'col1': [1, 2, 3], 'col2': [4, 5+1j, 6]}
dftemp = pd.DataFrame(d)
dftemp['col2']
dstemp = pd.Series({'col2': [4, 5+1j, 6]})
```
#### Problem description

dftemp['col2'] shows all vaues as below are complex, but there was only one complex value originally

0    (4+0j)
1    (5+1j)
2    (6+0j)

dstemp shows consitent values as those in origin as below:

col2    [4, (5+1j), 6]

NB. once iterating the rows, the values in 'col1' is also converted to complex!

#### Expected Output
0    (4)
1    (5+1j)
2    (6)
#### Output of ``pd.show_versions()``

<details>

[paste the output of ``pd.show_versions()`` here below this line]

</details>
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.2.final.0
python-bits: 32
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.23.4
pytest: None
pip: 18.0
setuptools: 40.5.0
Cython: None
numpy: 1.13.1
scipy: 1.1.0
pyarrow: None
xarray: None
IPython: None
sphinx: None
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 2.0.2
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
sqlalchemy: 1.2.9
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None