Modifying DataFrame first row produces wrong result

```python
# Reproducing faulty behavior:
dfs = pd.DataFrame([[1,'a1',31],[2,'a2',32],[3,'a3',33]], index=['a','b','c'], columns=['c1','c2','c3'])
dfs.iloc[0] = {'c1':101, 'c2':'A1', 'c3':111}
assert dfs.iloc[0][0] == 101     #FAILED 
assert dfs.iloc[0][1] == 'A1'     #FAILED
assert dfs.iloc[0][2] == 111     #FAILED
```
#### Problem description

Updating first row duplicates column labels.

