【问题标题】:Convert CSV file into 2D Table in Python在 Python 中将 CSV 文件转换为 2D 表
【发布时间】:2020-12-01 07:25:27
【问题描述】:

我有一个 CSV 文件,其结构如下:

Configuration ID, Value (1), Value (2), ......., Value (N)
Config (1)      , X (1)    , X (2)    , ......., X (N)
Config (2)      , Y (1)    , Y (2)    , ......., Y (N)

每一行的配置 ID 在文件中是唯一的。

我想在 Python (v3.8) 中读取这个 CSV 文件,并能够通过传递配置 ID 和值 ID(类似于 2D 字典)来查找特定值

print(dataStucture[Config (1)][Value (2)])

前面的语法应该打印:X(2)

Python 中是否有任何嵌入式函数可以解析 CSV 文件并将其转换为 2D 字典或任何允许我传递两个唯一键以从 CSV 文件中获取值的数据结构?任何提示将不胜感激。

【问题讨论】:

  • 您可以使用 pandas 将 CSV 读入数据框。语法:df=pandas.read.csv("path_to_file.csv")
  • @IoT,我的回答能解决你的问题吗?
  • @lmiguelvargasf 它解决了我的问题。但是 Jacob 所说的使用 pandas 和数据框更合适,因为它提供了更大的灵活性来操作我的数据。但是,除了上述答案之外,Jacob 还应该说明哪一列也用于索引。

标签: python python-3.x csv parsing data-structures


【解决方案1】:

如果您不想使用pandas 而是使用csv,则可以使用以下代码:

import csv

data_stucture = {}
with open('sample.csv') as csvfile:
    spamreader = csv.reader(csvfile)
    header = next(spamreader, None)  # skip the headers
    for row in spamreader:
        data_stucture[row[0].strip()] = {
            key.strip(): value.strip() for key, value in zip(header[1:], row[1:])
        }

考虑到文件的结构,data_structure的内容会是

{'Config (1)': {'Value (1)': 'X (1)', 'Value (2)Value (N)': 'X (2)'},
 'Config (2)': {'Value (1)': 'Y (1)', 'Value (2)Value (N)': 'Y (2)'}}

这意味着您将能够通过使用data_stucture['Config (1)']['Value (1)'] 获得"X (1)"

【讨论】:

    猜你喜欢
    • 2021-02-19
    • 2020-02-18
    • 2018-07-11
    • 2013-06-21
    • 2017-11-30
    • 2013-08-13
    • 2016-01-15
    • 2021-01-31
    • 2015-01-13
    相关资源
    最近更新 更多