Python 保存列表中以制表符分隔的TXT文件中的列
我有一个文本文件,其中有大约35行垃圾信息。之后是我需要提取的制表符分隔的数据。我需要在列表中保存特定列 首先,我试着这样做:Python 保存列表中以制表符分隔的TXT文件中的列,python,csv,Python,Csv,我有一个文本文件,其中有大约35行垃圾信息。之后是我需要提取的制表符分隔的数据。我需要在列表中保存特定列 首先,我试着这样做: with open('BIOGRID-ORGANISM-Homo_sapiens-3.4.163.tab - Small.txt') as txtfile: readCSV = csv.reader(txtfile, delimiter='\t') objectids = [] municodes = [] results = []
with open('BIOGRID-ORGANISM-Homo_sapiens-3.4.163.tab - Small.txt') as txtfile:
readCSV = csv.reader(txtfile, delimiter='\t')
objectids = []
municodes = []
results = []
for row in readCSV[35]:
objectid = row[3]
municode = row[5]
objectids.append(objectid)
municodes.append(municode)
txtfile.close()
这就得到了错误
TypeError: '_csv.reader' object is not subscriptable.
然后,我尝试了这样的方法:
lol = list(csv.reader(open('BIOGRID-ORGANISM-Homo_sapiens-3.4.163.tab - Small.txt'), delimiter='\t'))
d = dict()
key = lol[0][0] # cell A7
value = lol[0][0]
print(key)
print(value)
但是这样,如果我更改[0][0],我将超出范围。您尝试过使用skiprows选项的熊猫吗
import pandas as pd
result = pd.read_csv('file.csv', skiprows=35)
relevant_column = list(result['relevant_column'])
您将迭代器与迭代结果混淆了。如果您首先迭代读卡器,将所有输入放入一个列表,然后对列表进行切片,那么您要做的是更好地表达:
data_rows = [_ for _ in readCSV][36:]
objectids = [_[3] for _ in data_rows]
municodes = [_[5] for _ in data_rows]
这可能不是获得实际用例的最佳方式。由于您从文件中的电子表格中获取了两列(可能更多),我建议您使用Pedro已经建议的PANDAS,并将内容直接填充到数据框中。df操作功能将使您免于大量的列表理解、筛选等操作。我尝试将['relevant_column']替换为['name of my column']和[0],但这两种方法都会给我错误键error:'tALIASES_FOR_a'将[0]放在列表之外。举个例子会更容易…请注意,由于您未能提供完整的解决方案,我们无法为您提供有效的解决方案,也无法帮助您处理后续的错误消息。