Groupby apply using a custom function displays incorrect arguments (DF)
#### Code Sample, a copy-pastable example if possible

```
def func3(df):
    print(df)
    df['Mean'] = np.mean(df['Data'].values)
    out = df[['Mean', 'Group']].iloc[0, :].copy(deep=True)
    return out

var1 = [1, 2, 3]
grp_var = ['Group1', 'Group2', 'Group2']
df_test = pd.DataFrame.from_dict({'Data': var1, 'Group': grp_var})

# Groupby test
df_grp = df_test.groupby(['Group'])
df_out = df_grp.apply(func3)
```
#### Surprising Print Output

```
   Data   Group
0     1  Group1
   Data   Group
0     1  Group1
   Data   Group  Mean
1     2  Group2   1.0
2     3  Group2
   Data   Group
0     1  Group1
   Data   Group
1     2  Group2
2     3  Group2

In [31]: df_out
Out[31]:
        Mean   Group
Group
Group1   1.0  Group1
Group2   2.5  Group2
```
#### output of `pd.show_versions()`

```
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.12.final.0
python-bits: 64
OS: Darwin
OS-release: 14.5.0
machine: x86_64
processor: i386
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8

pandas: 0.18.1
nose: 1.3.7
pip: 8.1.2
setuptools: 23.0.0
Cython: 0.24.1
numpy: 1.11.1
scipy: 0.18.0
statsmodels: 0.6.1
xarray: 0.7.2
IPython: 4.2.0
sphinx: None
patsy: 0.4.1
dateutil: 2.5.2
pytz: 2016.4
blosc: None
bottleneck: 1.0.0
tables: None
numexpr: 2.6.1
matplotlib: 1.5.2
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.8
boto: 2.40.0
pandas_datareader: None
```
#### Summary

The final output is correct, but the intermediate argument calls appear to be referencing incorrect data frames. There are two groups to iterate over, but 5 statements are printed, one of which contains a new column called 'Mean' and is printed under Group2, but the mean value is for Group1. This seems to occur when a pandas series object is returned, and makes it difficult to interactively evaluate/debug groupby calls using custom arguments. The printed DF's should match the DF for the given group being processed. Is this known behavior? 
