如何用字典推导式将DataFrame转换为指定格式的字典?
解决方法
你的问题出在df.to_dict()的用法上——它默认会把列名作为字典的键,而不是你需要的country列的值,所以方向完全错了。
正确的字典推导式应该直接遍历DataFrame的行,以country的值为键,处理后的city列表为值:
result = {row['country']: [city.strip() for city in row['city'].split(',')] for _, row in df.iterrows()}
代码说明:
df.iterrows():遍历DataFrame的每一行,_用来忽略行索引,row是包含当前行数据的Series对象row['country']:取当前行的国家名称作为字典的键row['city'].split(','):把城市字符串按逗号分割成列表,比如"Sao Paulo, Rio de Janeiro"会变成["Sao Paulo", " Rio de Janeiro"]city.strip():去掉每个城市名称前后的空格,避免出现带空格的元素- 整个内层列表推导式会生成符合要求的城市列表,不管是单个还是多个城市
运行后得到的结果就是你需要的格式:
{'Argentina': ['Buenos Aires'], 'Bangladesh': ['Dhaka'], 'Brasil': ['Sao Paulo', 'Rio de Janeiro']}
内容的提问来源于stack exchange,提问作者tucomax
相关产品推荐
相关产品推荐

