df.apply(...): better error messages in case of NaN
I had to debug a problem which was caused by a NaN in a string column:

``` python
cit  = citations[1655:1660][["names"]]
print cit

             names
1655           A;B
1656          NaN
1657           C;D
1658           E;F
1659          G;H

s = cit.apply(lambda x: pandas.Series(x.split(';'))).stack()
[...]
C:\portabel\Python27\lib\site-packages\pandas\core\series.pyc in apply(self, func, convert_dtype, args, **kwds)
   1952             values = lib.map_infer(values, lib.Timestamp)
   1953 
-> 1954         mapped = lib.map_infer(values, f, convert=convert_dtype)
   1955         if len(mapped) and isinstance(mapped[0], Series):
   1956             from pandas.core.frame import DataFrame

C:\portabel\Python27\lib\site-packages\pandas\lib.pyd in pandas.lib.map_infer (pandas\lib.c:43742)()

<timed exec> in <lambda>(x)

AttributeError: 'float' object has no attribute 'split'
```

I would be nice if pandas could in that case spit out a more helpfull error messages or check if the error occured on a NaN cell and simple set that cell to NaN (Does R this?) or rethrow  the error as a "NaNError" or something like that.
