Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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 使用字段名提取数据_Python_Csv - Fatal编程技术网

Python 使用字段名提取数据

Python 使用字段名提取数据,python,csv,Python,Csv,我已使用以下工具从CSV数据文件中解析和提取了行和字段名: reader = csv.DictReader(open('Sourcefile.txt','rt'), delimiter = '\t') fn = reader.fieldnames 如何使用fieldname访问任何行中解析的数据?例如,字段名可以是AA,BB,CC,DD。如何获取第5行中的DD或第3行中的AA的值?只要文件不是太大,只需将读取器转换为列表: data = list(reader) 现在访问第1行中的列AA:

我已使用以下工具从CSV数据文件中解析和提取了行和字段名:

reader = csv.DictReader(open('Sourcefile.txt','rt'), delimiter = '\t')
fn = reader.fieldnames

如何使用fieldname访问任何行中解析的数据?例如,字段名可以是
AA
BB
CC
DD
。如何获取第5行中的
DD
或第3行中的
AA
的值?

只要文件不是太大,只需将读取器转换为列表:

data = list(reader)
现在访问第1行中的列
AA

data[0]['AA']
或第3行中字段名3的列:

data[2][fn[2]]

一种简单的方法是将文件中的所有数据存储到容器中。另一种解决方案是使用熊猫数据帧:

>>import pandas as pd
>>from io import StringIO  # just to make a fake in memory file
>>s = StringIO('AA\tBB\tCC\tDD\n1\t2\t3\t4\n11\t12\t13\t14\n') # fake data
>>data = pd.read_table(s)
>>data.loc[0,'AA']  # access row 0 (the first row) and column AA
1

编辑:这确实使用了标准库中未包含的不同软件包,但我经常发现,当我不断阅读和操作csv文件时,使用pandas比使用csv更容易。

我不确定您是否可以跳过行,但是你可以在阅读
x-1
行之前忽略结果,然后再做一些事情,
rt
是打字错误吗?我认为读取二进制文件应该是
rb