What Jordan said, although I'd expect a pure-dataset approach to be a little faster than building a new dataset via Python objects:
Though the example script I have there doesn't support changing the column types. I'll leave that as an exercise for the reader