Это продолжение этого вопроса: Использование панд для добавления элементов списка вместе . Я хотел бы обобщить эту функцию для получения уникальных элементов в массиве, даже если они не относятся к типу «hashable», например, dict. Вот входной массив:
items = [
{
'FirstName': 'David',
'LastName': 'Smith',
'Residence': [{'Place': 'X', 'Age': 22}, {'Place': 'Y', 'Age': 23}]
},
{
'FirstName': 'David',
'LastName': 'Smith',
'Residence': [{'Place': 'Z', 'Age': 20}]
},
{
'FirstName': 'David',
'LastName': 'Smith',
'Residence': [{'Place': 'Z', 'Age': 20}]
},
{
'FirstName': 'Bob',
'LastName': 'Jones',
'Residence': [{'Place': 'Z', 'Age': 20}]
}
]
Я хочу сложить вместе уникальные Резиденции (дикты), поэтому конечный результат будет:
items = [
{
'FirstName': 'David',
'LastName': 'Smith',
'Residence': [{'Place': 'X', 'Age': 22}, {'Place': 'Y', 'Age': 23}, {'Place': 'Z', 'Age': 20}]
},
{
'FirstName': 'Bob',
'LastName': 'Jones',
'Residence': [{'Place': 'Z', 'Age': 20}]
}
]
SQL-код, который я бы использовал, был бы примерно таким:
SELECT FirstName, LastName, GROUP_CONCAT(DISTINCT **Residence Object**)
FROM items
GROUP BY FirstName, LastName
Как бы я сделал это в pandas
, чтобы я не получил ошибку unhashable type
при попытке получить отдельные элементы массива?