python 3.x - How to create multiple value dictionary from pandas data frame -


lets have pandas data frame 2 columns(column , column b): values in column 'a' there multiple values in column 'b'. want create dictionary multiple values each key values should unique well. please suggest me way this.

one way groupby columns a:

in [1]: df = pd.dataframe([[1, 2], [1, 4], [5, 6]], columns=['a', 'b'])  in [2]: df out[2]:     b 0  1  2 1  1  4 2  5  6  in [3]: g = df.groupby('a') 

apply tolist on each of group's column b:

in [4]: g['b'].tolist()  # shorthand .apply(lambda s: s.tolist()) "automatic delegation" out[4]: 1    [2, 4] 5       [6] dtype: object 

and call to_dict on series:

in [5]: g['b'].tolist().to_dict() out[5]: {1: [2, 4], 5: [6]} 

if want these unique, use unique (note: create numpy array rather list):

in [11]: df = pd.dataframe([[1, 2], [1, 2], [5, 6]], columns=['a', 'b'])  in [12]: g = df.groupby('a')  in [13]: g['b'].unique() out[13]: 1    [2] 5    [6] dtype: object  in [14]: g['b'].unique().to_dict() out[14]: {1: array([2]), 5: array([6])} 

other alternatives use .apply(lambda s: set(s)), .apply(lambda s: list(set(s))), .apply(lambda s: list(s.unique()))...


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -