如何将含拼接列表的DataFrame转换为字典?
将DataFrame转换为指定列的键值对字典
情况1:B列是原生Python列表
如果你的DataFrame里B列的元素本身就是Python列表(不是带引号的字符串),用两种简单方法就能转字典:
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'A': ['Cow', 'Monkey'], 'B': [['Sheep','Pig','Bear'], ['Frog','Toad','Bird']] }) # 方法1:用pandas内置的to_dict result = df.set_index('A')['B'].to_dict() # 方法2:用Python内置的zip result = dict(zip(df['A'], df['B'])) # 输出结果:{'Cow': ['Sheep', 'Pig', 'Bear'], 'Monkey': ['Frog', 'Toad', 'Bird']}
情况2:B列是字符串格式的列表
从你给出的表格看,B列更像是带方括号和引号的字符串(比如"["Sheep","Pig","Bear"]"),这种情况需要先把字符串解析成真正的列表,再转字典:
import pandas as pd import ast # 构造示例数据(B列为字符串) df = pd.DataFrame({ 'A': ['Cow', 'Monkey'], 'B': ['["Sheep","Pig","Bear"]', '["Frog","Toad","Bird"]'] }) # 把字符串解析为列表 df['B'] = df['B'].apply(ast.literal_eval) # 之后转字典的方法和情况1一致 result = dict(zip(df['A'], df['B'])) # 或者用to_dict:result = df.set_index('A')['B'].to_dict() # 输出结果和上面一致
内容的提问来源于stack exchange,提问作者BB123
相关产品推荐
相关产品推荐

