columns become "unlinked" from a DataFrame when a new row is created
...perhaps this is the desired behavior, but it is not at all what I expected and had me very confused for a good while as I tried to figure out why I suddenly couldn't change values in the DataFrame I was using like I always had before. 

Below is an MWE. Basically what happens is that if you assign a value to a row that did not previously exist, it get assigned to the row of that column, but then the DataFrame still seems to use the original column. That means that updating a value for a row that was in the original table doesn't update it in the DataFrame afterwards. 

```
>>> import pandas as pd
>>> from numpy import zeros
>>> df = pd.DataFrame(data=zeros([2,3]), index=['row1', 'row2'], columns=['col1' ,'col2', 'col3'])

>>> df
      col1  col2  col3
row1     0     0     0
row2     0     0     0

>>> df['col1']['row1'] = 1

>>> df
      col1  col2  col3
row1     1     0     0
row2     0     0     0

>>> df['col1']['row3'] = 2

>>> df
      col1  col2  col3
row1     1     0     0
row2     0     0     0

>>> df['col1']
row1    1
row2    0
row3    2
Name: col1, dtype: float64

>>> df['col1']['row2'] = 3

>>> df
      col1  col2  col3
row1     1     0     0
row2     0     0     0

>>> df['col1']
row1    1
row2    3
row3    2
Name: col1, dtype: float64
```
