使用 for 循环和函数创建字典
Posted
技术标签:
【中文标题】使用 for 循环和函数创建字典【英文标题】:Create a dictionary using a for loop and a function 【发布时间】:2022-01-13 01:53:37 【问题描述】:我有一个包含邮政编码的数组,我想用邮政编码和与它们相关的函数的结果构建一个字典。 (基本上,循环转到 DataFrame 并查看每个邮政编码有多少不同的 'CouncilArea')。
这是我尝试过的 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())
我已经在网上搜索了大约一个小时,但仍未找到解决方案。 非常感谢您的支持!!!
【问题讨论】:
for cps in codigos_postales: data[data['Postcode']==cps]['CouncilArea']
使用某种groupby
会快得多。
谢谢,会调查的! :)
【参考方案1】:
更多循环外的dict创建
codigo_postal_council =
for cps in codigos_postales:
codigo_postal_council[cps] = pd.notna(pd.unique(data[data['Postcode']==cps]['CouncilArea'])).sum()
【讨论】:
就是这样,它现在可以正常工作了!!非常感谢您的回复:)以上是关于使用 for 循环和函数创建字典的主要内容,如果未能解决你的问题,请参考以下文章
在for循环中排除字典中的项目,并在字典中使用if和 else。
如何将创建多个字典的 for 循环的输出加入/合并到一个大字典中