for programming purposes I think linux (without a window manager) is a lot easier. If you're planning on using it as a desktop then ms windows hands down
issue with hdf5 was size, threading, corrupted files. the team moved from hdf5 to kdb. as someone mentioned columnar database vs row; find a free or cheap column db and just load into it. forget all these individual files
people tend to go from hdf5 to bcolz (if not kdb). is your data ticks/events or is it already normalized somehow? if its events, might want to look at queues(ie. kafka) for base storage then something else when analyzing.
regrets? for those who want things programmed you should ask on a mailing list or stackoverflow how to do this or that. I wouldn't be surprised that you could get everything needed. In your eyes the program is complex but more than likely it's trivial. The cost is that people cannot explain what...
this will get the type and exp
optionsDF[ (optionsDF.type == 'CALL') & (optionsDF.EXP == '20170907') ]
closest delta you might need to use interp or take a look at http://xarray.pydata.org/en/stable/
it has nearest functions and N-dimensional functionality that would probably work well with options