Skip to main content
 首页 » 编程设计

Python之在并行字典中查找一个值的平均值

2025年05月04日19zdz8207

所以我有一些 .csv 数据文件需要清理。其中一行数据的示例是:

u[i] = {'age': '44', 'salary': '117681.0', 'suburb': None, 'language': 'English'} 

我已经过滤掉了不需要的数据,并返回了多行相关词典。例如:

{'age': '44', 'salary': '117681.0', 'suburb': None} 
{'age': '34', 'salary': '56456.0', 'suburb': 'Frankston'} 
{'age': '37', 'salary': '59370.0', 'suburb': 'Richmond'} 
{'age': '44', 'salary': '91399.0', 'suburb': 'Collingwood'} 
{'age': '36', 'salary': '74437.0', 'suburb': 'Toorak'} 
{'age': '41', 'salary': '89121.0', 'suburb': 'Frankston'} 

我现在想把这些字典中的每一个的薪水相加,找出平均薪水,但我这辈子都想不出来。

我试过只分离工资值并使用计数器,但我似乎无法让它工作。我也尝试制作可以循环的列表,但我似乎无法在一个列表中获取所有值。我的问题是,当我隔离值时,它们是平行值/列表,我不知道如何使用它。

非常感谢任何帮助,这让我发疯了!谢谢!

到目前为止,这是我的代码,但在这个阶段我还没有真正值得一看的东西:

def average_salary(data, lower_age, upper_age):  
    u = dict(sorted(data_cleaned.items())) 
    count = 0   
 
    for i in u: 
        age = u[i]['age'] 
        sal = u[i]['salary'] 
        tally = 0 
 
        if age is not None and sal is not None and lower_age < float(age) < upper_age: 
            tally += float(u[i]['salary']) 
            print(u[i]['salary']) 

请您参考如下方法:

在列表中收集薪水

salaries = [float(my_dict['salary']) for my_dict in my_dicts] 
average = sum(salaries) / len(salaries)