Skip to content

Makes unhashable values in a pandas DataFrame hashable

License

Notifications You must be signed in to change notification settings

bra-fsn/hashable_df

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hashable_df

If you have ever tried to use native python objects in Pandas DataFrames, you may have run into an issue similar to this:

df = pd.DataFrame({"A": [1, 2, 3, 4],
                   "B": ["a", "b", "c", "d"],
                   "C": [[1, 2, 3], [1, 2], [1, 2, 3], 4],
                   "D": [{1: 1, 2: 2}, {1: 1, 3: 3}, {1: 1, 4: 4}, {1: 1, 2: 2}],
                   "E": [[{1: {2: 2}}, {2: {3: 3}}], [{1: {2: 2}}, {2: {3: 3}}],
                         [{1: {2: 2}}, {2: {3: 3}}], [{1: {2: 2}}, {2: {3: 3}}]]
                   })
df['C'].unique()

TypeError: unhashable type: 'list'

This is caused by unhashable values in the DataFrame cells.

This small library helps to resolve that making this possible:

from hashable_df import hashable_df
hashable_df(df)['E'].unique()

returning

array([[{1: {2: 2}}, {2: {3: 3}}]], dtype=object)

About

Makes unhashable values in a pandas DataFrame hashable

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages