我正在尝试从包含3列的CSV创建字典,其中前两列成为键,第三列成为值:
在此示例中,example.csv包含:
Column-1 Column-2 Column-3
1 A foo
2 B bar
预期输出应为:
dictionary = {1, A: foo, 2, B: bar}
我目前正在尝试从pandas数据框导入并转换为字典。我使用以下不成功:
df = pd.read_csv("example.csv")
dictionary = df.set_index(['Column-1', 'Column-2']).to_dict()
有没有办法用pandas来创建字典?还是有更优雅的方法将csv转换为字典?
答案 0 :(得分:4)
IIUC即将结束 - 需要按['Column-3']
选择列:
d = df.set_index(['Column-1', 'Column-2'])['Column-3'].to_dict()
print (d)
{(2, 'B'): 'bar', (1, 'A'): 'foo'}
答案 1 :(得分:2)
dict(zip(zip(df['Column-1'], df['Column-2']), df['Column-3']))
{(1, 'A'): 'foo', (2, 'B'): 'bar'}
{(a, b): c for a, b, c in df.values}
{(1, 'A'): 'foo', (2, 'B'): 'bar'}