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

Python 计算字典中的字典中的值的数量,python,dictionary,dataset,Python,Dictionary,Dataset,我目前正在为机器学习的安然数据集工作。但我陷入了一个困境,需要在内部字典中找到特定键的NaN值的数量。 这是我的字典的示例外观: {"Name of person as a key":{"E-Mail":<email of person, if known>, "Salary":<salary off person, if known>}} {“姓名作为密钥”:{“电子邮件”:,“工资”:} 严格地说,我想找出工资未知的人数,即NaN。我应该如何进行?提前感谢您可以这

我目前正在为机器学习的安然数据集工作。但我陷入了一个困境,需要在内部字典中找到特定键的NaN值的数量。 这是我的字典的示例外观:

{"Name of person as a key":{"E-Mail":<email of person, if known>, "Salary":<salary off person, if known>}}
{“姓名作为密钥”:{“电子邮件”:,“工资”:}

严格地说,我想找出工资未知的人数,即NaN。我应该如何进行?提前感谢

您可以这样做:

    for person in dic:
        salary = dic.get(person).get('salary')
        if not salary:
            print person
你可以得到所有没有薪水的人。

你可以这样做:-

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

或在单行中:-

sum(1 for value in dict.values() if value['Salary'] is None )
或者,如果需要在其他情况下做一些额外的事情,您可以这样做:-

count = 0;
for key, value in dict.items():
     if(value['Salary'] is None):
             count+=1
sum(1 if value['Salary'] is None else 0 for value in dict.values() )
上面的一行在[Expression condition iteration]中对此进行了解释

有一种更好的方法可以让您在计算过程中获得额外的能力: 此表达式返回不可用的薪资计数:-

['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新手,我可以简单地说,它是学习自然英语等工作的一种很好的语言。

假设
d
是包含相关值的词典的名称,并且np.nan通过字符串“nan”表示(我对Enron数据集进行了简要调查):


sum(如果d['Salary']=='NaN',那么data.values()中的d为1)
@AChampion这是很棒的一行解决方案。谢谢buddy@HrishikeshKulkarni我感谢你及时的行动。我只是想说,问题的关键不是让我的答案被接受,而是让用户知道我不会得到任何回报。此外,复制新变量,但不改变核心答案,这并不能解决问题,给予信任(正如你在编辑中尝试的那样)也不能解决问题。除非它是另一个评论或答案的合理使用转换,否则使用它是不合适的。谢谢和干杯。缺少
和缩进。是的,简单而优雅的方式。谢谢:)