计数字典字典中的值的数量
我目前正在研究机器学习的安然数据集。但我被困在一个点,我需要找到NaN内部字典中特定键的值。 这是我的字典的样本看:计数字典字典中的值的数量
{"Name of person as a key":{"E-Mail":<email of person, if known>, "Salary":<salary off person, if known>}}
在严格意义上讲,我想找到的人,他们的工资是不知道即NaN的数量。我应该如何继续?在此先感谢
假设d
是含有相关值的字典的名称和np.nan经由字符串“的NaN”(它似乎给予我简短调查安然数据集)表示:
count = 0
for person in d:
if d[person].get('Salary') == 'NaN':
count += 1
缺少':'和缩进。 – AChampion
你可以这样说:
for person in dic:
salary = dic.get(person).get('salary')
if not salary:
print person
,你会得到其薪水是无的所有人员。
是简单而优雅的方式。谢谢:) – HrishikeshKulkarni
你可以这样做: -
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,我可以简单地说它是学习工作的绝佳语言,如自然英语的语言。
'sum(1 for d in data.values()if d ['Salary'] =='NaN')' – AChampion
@AChampion这是一个非常棒的单线解决方案。感谢buddy – HrishikeshKulkarni
@HrishikeshKulkarni我很感谢你的及时行动。只是想提一提,关键不是接受_my_答案,而是向用户表明[剽窃](https://*.com/a/45874278/4909087)没有获得任何奖励。另外,使用新变量进行复制,但不改变核心答案并不会使问题变得可行,并且在您编辑时尝试做出功劳并不能解决问题。除非公平地使用其他评论或答案的转换,否则不宜使用。感谢和欢呼。 –