У меня есть следующий массив dicts:
items = [
{
'FirstName': 'David',
'Language': ['en',]
},
{
'FirstName': 'David',
'Language': ['fr',]
},
{
'FirstName': 'David',
'Language': ['en',]
},
{
'FirstName': 'Bob',
'Language': ['en',]
}
]
Который я хочу сгруппировать по FirstName и добавить вместе уникальные языки, например:
items = [
{
'FirstName': 'David',
'Language': ['en', 'fr']
},
{
'FirstName': 'Bob',
'Language': ['en',]
}
]
Я бы использовал SQL:
SELECT FirstName, GROUP_CONCAT(DISTINCT Language ORDER BY Language)
FROM items
GROUP BY FirstName
С помощью панд, как бы я скомбинировал это и создал группу на FirstName и получил массив уникальных языков? Вот что у меня есть:
>>> df = pandas.DataFrame(items)
>>> df.groupby('FirstName')['Language']
.apply(lambda x: list(set(x))) # this line is off
.reset_index()
.to_dict(orient='records')