#python-3.x #pandas #function #dictionary #for-loop
#python-3.x #панды #функция #словарь #для-петли
Вопрос:
У меня есть массив с почтовыми кодами, и я хочу создать словарь с почтовыми кодами и результатом функции, связанной с ними. (В основном цикл переходит к фрейму данных и смотрит, сколько разных «областей совета» существует для каждого почтового индекса).
Это цикл for, который я пробовал:
for cps in codigos_postales: codigo_postal_council = {} codigo_postal_council[cps] = pd.notna(pd.unique(data[data['Postcode']==cps]['CouncilArea'])).sum()
Проблема в том, что на выходе я не получаю полный словарь с почтовыми кодами и результатами. Я получаю только последний элемент массива и результат функции в качестве вывода.
{3793.0: 0}
Я знаю, что функция, которую я закодировал, работает правильно, потому что, если я включу этот код в цикл, я получу длинную распечатку результатов.
print(pd.notna(pd.unique(data[data['Postcode']==cps]['CouncilArea'])).sum())
Я искал в Интернете около часа и все еще не нашел решения. Большое вам спасибо за вашу добрую поддержку!!!
Комментарии:
1.
for cps in codigos_postales: data[data['Postcode']==cps]['CouncilArea']
было бы намного быстрее с каким-нибудьgroupby
.2. Спасибо, разберусь в этом ! 🙂
Ответ №1:
Подробнее внешний цикл создания диктанта
codigo_postal_council = {} for cps in codigos_postales: codigo_postal_council[cps] = pd.notna(pd.unique(data[data['Postcode']==cps]['CouncilArea'])).sum()
Комментарии:
1. Вот и все, теперь он работает правильно!! Большое вам спасибо за ваш ответ 🙂