I have a dataframe with 2 columns Address and ID. I want to merge IDs with the same addresses in a dictionary
import pandas as pd, numpy as np
df = pd.DataFrame
I think you can use groupby
and a dictionary comprehension here:
>>> df
Address ID
0 12 A Aa
1 66 C Bb
2 10 B Cc
3 10 B Dd
4 12 A Ee
5 12 A Ff
>>> {k: list(v) for k,v in df.groupby("Address")["ID"]}
{'66 C': ['Bb'], '12 A': ['Aa', 'Ee', 'Ff'], '10 B': ['Cc', 'Dd']}
In response to the comment about multiple columns:
>>> df
Address ID Name
0 12 A Aa Alpha
1 66 C Bb Bravo
2 10 B Cc Charlie
3 10 B Dd Delta
4 12 A Ee Edgar
5 12 A Ff Frank
>>> {k: v.to_dict() for k,v in df.groupby("Address")}