Let’s say I have a list of users
resource = ['A', 'B', 'C']
then I have a table
| Date | | Resource | | -------- | | ------------ | | 2022-11-01 | ['A', 'B', 'C'] | | 2022-11-12 | ['A', 'B'] | | 2022-11-13 | ['B', 'C'] |
What I want is: to have a list of Date
for each Resource A, B, C
So desired output could be a dictionary:
A: 2022-11-01 2022-11-12 B: 2022-11-01 2022-11-12 2022-11-13 C: 2022-11-01 2022-11-13
Advertisement
Answer
You can use explode
then use groupby
and agg(list)
at the end get the result as dict
with to_dict
.
dct = df.explode('Resource').groupby('Resource')['Date'].agg(list).to_dict() print(dct)
Output:
{'A': ['2022-11-01', '2022-11-12'], 'B': ['2022-11-01', '2022-11-12', '2022-11-13'], 'C': ['2022-11-01', '2022-11-13']}