计算字典词典中的值的数量

时间:2017-08-25 03:44:43

标签: python dictionary dataset

我目前正致力于机器学习的安然数据集。但是我仍然需要找到内部字典中特定键的 NaN 值的数量。 这是我的字典样本:

{"Name of person as a key":{"E-Mail":<email of person, if known>, "Salary":<salary off person, if known>}}

严格来说,我想找到工资未知的人数,即 NaN 。我该怎么办?提前致谢

3 个答案:

答案 0 :(得分:1)

你可以这样做:

    for person in dic:
        salary = dic.get(person).get('salary')
        if not salary:
            print person

你得到薪水为无的所有人。

答案 1 :(得分:1)

假设d是包含相关值的字典的名称,并且np.nan通过字符串'NaN'表示(它似乎是我对Enron数据集的简要调查):< / p>

count = 0
for person in d:
    if d[person].get('Salary') == 'NaN':
        count += 1

答案 2 :(得分:0)

你可以这样做: -

count = 0;
for key, value in dict.items():
     if(value['Salary'] is None):
             count+=1

或者

for value in dict.values():
     if(value['Salary'] is None):
             count+=1

或单行: -

sum(1 for value in dict.values() if value['Salary'] is None )

或者如果需要在其他条件下做一些额外的事情,你可以这样做: -

sum(1 if value['Salary'] is None else 0 for value in dict.values() )

以上一行在[表达式条件迭代]中解释了它。

一种更好的方式可以让您获得额外的计数能力: - 此表达式返回不可用的工资计数: -

['salary not available' if value['Salary'] is None else ''salary available'' for value in dict.values()].count('salary not available')

此表达式的薪水回报率可用: -

['salary not available' if value['Salary'] is None else 'salary available' for value in dict.values()].count('salary available')

我是Python的新手,我可以简单地说它是学习天然英语口语的好方法。