Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中将CSV文件转换为2D表格_Python_Python 3.x_Csv_Parsing_Data Structures - Fatal编程技术网

在Python中将CSV文件转换为2D表格

在Python中将CSV文件转换为2D表格,python,python-3.x,csv,parsing,data-structures,Python,Python 3.x,Csv,Parsing,Data Structures,我有一个具有以下结构的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(类似于2

我有一个具有以下结构的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 dictionary)来查找特定的值

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


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

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

导入csv
数据结构={}
将open('sample.csv')作为csvfile:
spamreader=csv.reader(csvfile)
header=next(spamreader,None)#跳过标题
对于spamreader中的行:
数据结构[行[0].strip()]={
key.strip():key的value.strip(),zip中的值(头[1:],行[1:])
}
考虑到文件的结构方式,
数据结构的内容将是

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

这意味着您可以使用
数据结构['Config(1)]['Value(1)]
获取
“X(1)”
,您可以使用pandas将CSV读取到数据帧中。语法:
df=pandas.read.csv(“path\u to\u file.csv”)
@IoT,我的答案能解决你的问题吗?@lmiguelvargasf它能解决我的问题。但是Jacob所说的使用pandas和data frame更合适,因为它提供了更大的灵活性来操作我的数据。但是,除了上面的答案外,Jacob还应该说明哪个列也用于索引。
{'Config (1)': {'Value (1)': 'X (1)', 'Value (2)Value (N)': 'X (2)'},
 'Config (2)': {'Value (1)': 'Y (1)', 'Value (2)Value (N)': 'Y (2)'}}