Currently the nil values in DataFrame are UndefinedObject instance. We would like to replace them by something like DataNaN that could do computations.
For example:
NaN - 5 => NaN
This would remove the need to nil check everywhere and simplify the code