Apparent dataframe corruption after update using groupby
The example below creates a dataframe df, adds a new boolean column D with False values, then uses groupby and idxmax to select some rows in which to set column D to True. After doing so, the dataframe is in a strange state where direct access to the column via `df.D` or `df['D']` shows the updated values, but printing or saving the whole dataframe shows the original false values.

``` python
In [1]: import pandas as pd

In [2]: pd.util.print_versions.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 3.4.0.final.0
python-bits: 64
OS: Linux
OS-release: 3.13.0-24-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8

pandas: 0.13.1
Cython: 0.20.1post0
numpy: 1.8.1
scipy: 0.13.3
statsmodels: None
IPython: 1.2.1
sphinx: None
patsy: 0.2.1
scikits.timeseries: None
dateutil: 2.0
pytz: 2012c
bottleneck: None
tables: 3.1.1
numexpr: 2.2.2
matplotlib: 1.3.1
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
sqlalchemy: None
lxml: 3.3.3
bs4: 4.2.1
html5lib: 0.999
bq: None
apiclient: None

In [3]: df = pd.DataFrame({
   ...:     'A':[1, 2, 2, 2, 2],
   ...:     'B':[10, 30, 20, 60, 40],
   ...:     'C':[False, False, False, False, False]},
   ...:     columns=['A', 'B', 'C'])

In [4]: df['D'] = False

In [5]: df['D'][list(df.groupby('A')['B'].idxmax().values)] = True

In [6]: df.D
Out[6]: 
0     True
1    False
2    False
3     True
4    False
Name: D, dtype: bool

In [7]: df
Out[7]: 
   A   B      C      D
0  1  10  False  False
1  2  30  False  False
2  2  20  False  False
3  2  60  False  False
4  2  40  False  False

[5 rows x 4 columns]

In [8]: df.values
Out[8]: 
array([[1, 10, False, False],
       [2, 30, False, False],
       [2, 20, False, False],
       [2, 60, False, False],
       [2, 40, False, False]], dtype=object)
```

If I remove column C (which isn't used), the effect disappears and the dataframe appears to be updated like I expected.

If I split out the indexing expression on line 5, as below, the effect disappears:

``` python
indexes = list(df.groupby('A')['B'].idxmax().values)
df['D'][indexes] = True
```

The effect also disappears if I only split out the groupby invocation:

``` python
group = df.groupby('A')
df['D'][list(group['B'].idxmax().values)] = True
```

In all cases, I expect the dataframe to have the same True values when printed as are observed by directly accessing the column. Failing that, an exception that explains what I'm doing wrong.
