【发布时间】:2018-08-11 03:28:33
【问题描述】:
如何在 pd.DataFrame.from_dict 理解迭代中忽略丢失的键?
@jezrael 在这里回答了我关于使用字典值制作 df 的问题:
https://stackoverflow.com/a/49072184/9242601
但我遇到了Key Error: 'fees' 错误,因为并非所有“客户”都有“费用”键,因此我希望迭代只移动到下一个客户而不记录该客户,而不是生成错误在df中。
我仍然需要一个数据框,所以 try... except 和 if key in dict 不起作用,因为我最终会得到一个空(或不存在)的 df。
很抱歉将这个问题有效地传播到两个问题上,但我认为不值得重复完整的初始问题(因此链接)。
谢谢。
【问题讨论】:
-
if key in dct -
或
{k: dict(v.get('fees')) for k, v in d.items()}如果您不介意将None存储为缺少密钥的项目的值。 -
或
df = pd.DataFrame.from_dict({k: {}.setdefault('fees', v.get('fees',[])) for k, v in d.items()}, orient='index')- 如果不存在,则提供空的默认费用列表 - 不确定这是否适合您的数据
标签: python python-3.x pandas dictionary