python - 如何从具有两列的 CSV 创建字典作为 Python 中的键

标签 python pandas csv dictionary

<分区>

我正在尝试从具有 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 转换为字典?

最佳答案

IIUC 你很接近 - 需要通过 ['Column-3'] 选择列:

d = df.set_index(['Column-1', 'Column-2'])['Column-3'].to_dict()
print (d)
{(2, 'B'): 'bar', (1, 'A'): 'foo'}

关于python - 如何从具有两列的 CSV 创建字典作为 Python 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49686322/

相关文章:

python - 删除所有非字母字符并分成新列

csv - Julia :如何从文本文件(csv 与 'columns' 的数量不相等)导入图表?

mysql - 需要使用mysql查询在前两列中注入(inject)数据

python - 如何对数据集表中的列索引进行标签编码?

python - PyQt 中的 QKeyPress 事件

python - Pandas 数据框删除常量列

javascript - 如果数据的格式略有损坏,是否仍然可以确定其文件类型?

python - 大多数 pythonic3 dezip(?) 实现

python - 过滤 tsv 文件以根据列值获取前 3 个出现次数

Python 数据整理 : Loop through values in DataFrame and check if current iterator matches the former