使用dict理解时如何避免丢失键的错误

问题描述 投票:0回答:2

如何在pd.DataFrame.from_dict理解迭代中忽略缺失的键?

@jezrael友好地回答了我在这里用字典值制作df的问题:

https://stackoverflow.com/a/49072184/9242601

但我遇到了Key Error: 'fees'错误,因为并非所有“客户”都有“费用”键,所以我不想生成错误,而是希望迭代转移到下一个客户而不是在df中记录该客户。

我仍然需要一个数据帧,所以try... exceptif key in dict将不起作用,因为我最终会得到一个空的(或不存在的)df。

抱歉在两个问题上有效地传播这个问题,但我认为不值得重复完整的初始问题(因此链接)。

谢谢。

python python-3.x pandas dictionary
2个回答
1
投票

链接没问题 - 它在Stackoverflow中,不会去任何地方。

符合dict.get方法。通过前导,这几乎是你需要知道的一切:

>>> d = {'present': 'real_value'}
>>> d.get('present')
'real_value'
>>> d.get('absent') is None
True
>>> d.get('absent', 'default')
'default'

你应该找到修改后的理解

{k: dict(v['fees']) for k, v in d.items() if v.get('fees') is not None}

满足您的需求,但这是未经测试的代码。


0
投票

有几种不同的方法可以解决这个问题。

一种方法是使用try except语句来捕获错误。

另一种方法是测试关键是在dict key in dict

另一种方法是使用dict的get方法dict.get(key, default = None),如果找不到值,默认选项将返回None,或者您可以将其设置为您需要的值。

© www.soinside.com 2019 - 2024. All rights reserved.