I need to perform a merge of two pandas DataFrames using columns with collections.Counter
objects (https://docs.python.org/2/library/collections.html#collections.Co
One way of getting around this is to create a column (for each DataFrame) of a version of your original data structure converted to a hashable type.
E.g.,
a['IDHash'] = a.ID.apply(lambda r: tuple(sorted(r.iteritems())))
b['IDHash'] = b.ID.apply(lambda r: tuple(sorted(r.iteritems())))
and then
pd.merge(a, b, on='IDHash')
After that, just erase the columns.