ENH: Suggestion convert table like objects to Pandas dataframes
We have a few lists/dicts in different classes which are basically tables we return to a user e.g. the list of orbit dicts, or the structure list in StructureContainer (and fits in the EnsembleOptimizer).
I suggest we move these objects to Pandas dataframe objects. Now I haven't used it much myself but it seems ideally for our this purpose and awesome in general. For instance analysis of the orbits would become:
orbits = cs.get_orbit_data() # DataFrame
plt.plot(orbits.radius, orbits.fc_norm)
# show 5 entries with largest fcs
orbits.sort_values('fc_norm')
orbits.head()
# selection
selection = 'radius > 2.5 and order == 3'
orbits.query(selection).plot('radius', 'fc_norm')
Currently it's not needed but hopefully in the future the HiPhive
users will spend their time fine tuning training sets and carrying out detailed analyzes of force constants.