【问题标题】:Create a dictionary using a for loop and a function使用 for 循环和函数创建字典
【发布时间】: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 会快得多。
  • 谢谢,会调查的! :)

标签: python-3.x pandas function dictionary for-loop


【解决方案1】:

更多循环外的dict创建

codigo_postal_council = {} 
for cps in codigos_postales:
    codigo_postal_council[cps] = pd.notna(pd.unique(data[data['Postcode']==cps]['CouncilArea'])).sum()

【讨论】:

  • 就是这样,它现在可以正常工作了!!非常感谢您的回复:)
猜你喜欢
  • 1970-01-01
  • 2023-01-17
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2019-03-29
  • 1970-01-01
  • 2020-06-20
  • 2019-09-30
相关资源
最近更新 更多