Series passed to function in DataFrame.apply on empty dataframe lack index
#### Code Sample, a copy-pastable example if possible

``` python
from StringIO import StringIO
import pandas as pd
from random import random 
s = "a,b,c"
df = pd.read_csv(StringIO(s))
f1 = lambda row: random()
new_col1 = df.apply(f1, axis=1)
df["d"] = new_col1
f2 = lambda row: 0 if row["a"] > 10 else 1
new_col2 = df.apply(f2, axis=1)
df["e"] = new_col2
df
```
#### Expected Output

```
Empty DataFrame
Columns: [a, b, c, d, e]
Index: []
```

The problem seems to be that a `Series` `row` is passed to the lambda and that 'a' can't be used to index into it. This is only breaks for an empty `DataFrame`. If it has values the output is as expected. 

According to the docs:

> Objects passed to functions are Series objects having index either the DataFrame’s index (axis=0) or the columns (axis=1)
#### output of `pd.show_versions()`

```
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.11.final.0
python-bits: 64
OS: Linux
OS-release: 4.4.0-21-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8

pandas: 0.18.1
nose: None
pip: 8.1.2
setuptools: 20.7.0
Cython: None
numpy: 1.11.0
scipy: None
statsmodels: None
xarray: None
IPython: None
sphinx: None
patsy: None
dateutil: 2.5.3
pytz: 2016.4
blosc: None
bottleneck: None
tables: None
numexpr: None
matplotlib: None
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: None
boto: None
pandas_datareader: None
```
