我已经将一个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的字典中删除这些键,然后再将它们传递给另一组函数。
我已经在这一段时间了很长一段时间,我很困惑为什么这个词汇理解不起作用。任何人都可以帮助我吗?
答案 0 :(得分:1)
你只是在dict提取上缺少.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}]