你如何构建一个嵌套的字典理解来模仿'.to_dict'所做的'records'?
How do you build a nested dict comprehension that imitates 'records' made by '.to_dict'?
我已将 CSV 文件读入 Pandas,并使用 'to_dict(orient='records') 函数将生成的数据帧转换为每行的字典列表。列表的简化版本如下所示:
records = [{'addjob': 'ADDJOB',
'age': 'AGE',
'disab': 'DISCURR13',
'eth': 'ETHUKEUL',
'full': 'FTPT'},
{'addjob': 'ADDJOB',
'age': 'AGE',
'disab': 'DISCURR13',
'eth': 'ETHUKEUL',
'full': nan}]
我正在尝试通过使用字典理解来模仿这种结构:
cleaned_records = OrderedDict([
{k:v for k,v in i} for i in records
])
编辑:删除了 'OrderedDict' 因为这是一个错误(错误是一样的):
cleaned_records = [{k:v for k,v in i} for i in records]
但是,它给我以下错误:
我尝试这样做的原因是我可以在将它们传递给另一组函数之前从字典中删除那些值为 null 的键。
我在这方面已经有一段时间了,我对为什么这个字典理解不起作用感到困惑。谁能帮帮我?
你只是在字典提取中缺少 .items() 或 .iteritems()。
In [28]: [{k:v for k,v in i.iteritems()} for i in records]
Out[28]:
[{'addjob': 'ADDJOB',
'age': 'AGE',
'disab': 'DISCURR13',
'eth': 'ETHUKEUL',
'full': 'FTPT'},
{'addjob': 'ADDJOB',
'age': 'AGE',
'disab': 'DISCURR13',
'eth': 'ETHUKEUL',
'full': nan}]
我已将 CSV 文件读入 Pandas,并使用 'to_dict(orient='records') 函数将生成的数据帧转换为每行的字典列表。列表的简化版本如下所示:
records = [{'addjob': 'ADDJOB',
'age': 'AGE',
'disab': 'DISCURR13',
'eth': 'ETHUKEUL',
'full': 'FTPT'},
{'addjob': 'ADDJOB',
'age': 'AGE',
'disab': 'DISCURR13',
'eth': 'ETHUKEUL',
'full': nan}]
我正在尝试通过使用字典理解来模仿这种结构:
cleaned_records = OrderedDict([
{k:v for k,v in i} for i in records
])
编辑:删除了 'OrderedDict' 因为这是一个错误(错误是一样的):
cleaned_records = [{k:v for k,v in i} for i in records]
但是,它给我以下错误:
我尝试这样做的原因是我可以在将它们传递给另一组函数之前从字典中删除那些值为 null 的键。
我在这方面已经有一段时间了,我对为什么这个字典理解不起作用感到困惑。谁能帮帮我?
你只是在字典提取中缺少 .items() 或 .iteritems()。
In [28]: [{k:v for k,v in i.iteritems()} for i in records]
Out[28]:
[{'addjob': 'ADDJOB',
'age': 'AGE',
'disab': 'DISCURR13',
'eth': 'ETHUKEUL',
'full': 'FTPT'},
{'addjob': 'ADDJOB',
'age': 'AGE',
'disab': 'DISCURR13',
'eth': 'ETHUKEUL',
'full': nan}]