apply method, should return certain columns as datetime but returns them as int[64] instead
#### Code Sample, a copy-pastable example if possible
```
a=pd.DataFrame(data=list(range(10)))
def test(x):
    x["date"]=pd.Timestamp("2017-01-01")
    return x
a.apply(test,axis=1)
```

returns:

```
    0   date
0   0   1483228800000000000
1   1   1483228800000000000
2   2   1483228800000000000
3   3   1483228800000000000
4   4   1483228800000000000
5   5   1483228800000000000
6   6   1483228800000000000
7   7   1483228800000000000
8   8   1483228800000000000
9   9   1483228800000000000
```
#### Problem description
This should obviously return a dataframe with timestamps in the column `date`. Here it is having the numerical `.value` of the timestamp instead.

Please don't come up with answer like : " use `df['date']=pd.Timestamp("2017-01-01")`. "

I simplified a lot my problem as to focus on the datetime with `.apply`. I need to use `.apply` in my real life code.

#### Expected Output

 ``` 
     0   date
0   0   2017-01-01 00:00:00
1   1   2017-01-01 00:00:00
2   2   2017-01-01 00:00:00
3   3   2017-01-01 00:00:00
4   4   2017-01-01 00:00:00
5   5   2017-01-01 00:00:00
6   6   2017-01-01 00:00:00
7   7   2017-01-01 00:00:00
8   8   2017-01-01 00:00:00
9   9   2017-01-01 00:00:00
```
