У меня есть список произвольного количества словарей в каждой ячейке столбца pandas.
df['Amenities'][0]
[{'Description': 'Basketball Court(s)'},
{'Description': 'Bike Rack / Bike Storage'},
{'Description': 'Bike Rental'},
{'Description': 'Business Center'},
{'Description': 'Clubhouse'},
{'Description': 'Community Garden'},
{'Description': 'Complex Wifi '},
{'Description': 'Courtesy Patrol/Officer'},
{'Description': 'Dog Park'},
{'Description': 'Health Club / Fitness Center'},
{'Description': 'Jacuzzi'},
{'Description': 'Pet Friendly'},
{'Description': 'Pet Park / Dog Run'},
{'Description': 'Pool'}]
Я хотел бы сделать следующее.
1) Обходите список словарных статей, распакуйте их и создайте столбцы со значением 1 (выход из «Удобства»).
2) На последующих итерациях проверьте, существует ли уже метка столбца, затем добавьте 1 в качестве значения в ячейку или создайте новый столбец, если он не существует.
3) Заполните оставшиеся столбцы 0.
По сути, я пытаюсь создать функции, которые содержат значения 0 и 1 из списка словарей.
Приведенный ниже код создает новые столбцы на основе значений dict, но часть проверки, существует ли столбец, создания нового, если нет, и присвоения единиц и нулей, требует некоторого размышления.
for i, row in df.iterrows():
dict_obj = row['Amenities']
for key, val in dict_obj.items():
if val in df.columns:
df.loc[i, val] = 1
else
.......
Ожидаемый результат примерно так:
![enter image description here](https://i.stack.imgur.com/ItXKr.png)