如何修正嵌套字典转Pandas Series时报语法错误的代码
错误原因
d.items(未补全右括号,正确写法为d.items()- 列表推导式的循环顺序逻辑错误,嵌套推导式需要把外层循环(遍历
dict_map的k1, d)放在前面,内层循环(遍历子字典的k2, v)放在join的列表生成式内部 - 整体语法结构缺少必要的闭合括号,字典推导式结构不完整
修正后可运行代码
import pandas as pd dict_map = { "Yes" : {'Sex':'F', 'Pregnant': 'Y'}, "No" : {'Sex':'F', 'Pregnant': 'N'}, "N/A" : {'Sex': 'M'}, } sr = pd.Series({ k1: ' & '.join([f"{k2} == '{v}'" for k2, v in d.items()]) for k1, d in dict_map.items() })
运行输出结果
执行print(sr)后得到的结果和目标完全一致:
Yes Sex == 'F' & Pregnant == 'Y' No Sex == 'F' & Pregnant == 'N' N/A Sex == 'M' dtype: object
内容的提问来源于stack exchange,提问作者Fazli
相关产品推荐
相关产品推荐

