如何在元组列表中输入 CSV 文件

数据挖掘 CSV
2022-03-14 21:53:01

我有一个包含 csv 数据的 .txt(data.txt) 文件,例如:

X         Class
15.0001   Yes
18.00     NO
17.07     Yes

我需要创建一个函数来返回每个样本的元组列表。到目前为止,我做了:

import csv
def readAllData(str): 
    with open(str,'r') as f:
        f.readline()
        data=[tuple(line) for line in csv.reader(f)]
    return (data)

输出:

[('15.001\tYES',),
 ('18.00\tNo',),
 ('17.07\tYes',),]

我想:

[(15.001, Yes), (18.00, No), (17.07, Yes)]
2个回答

从技术上讲,你没有CSV,你有一个TSV所以我会花时间相应地拆分每一行,然后构建你的元组。

在行中:

data=[tuple(line) for line in csv.reader(f)] return (data)

您需要更换csv.reader来处理tsv

不要一下子把所有的东西都带入记忆中……

它也不适用于许多情况..

csv,分隔文件和tsvtab(\t)分隔的。虽然它们属于同一类别..

tqdm 是可选的..

import csv
from tqdm import tqdm_notebook

with open('sample.txt','rb') as tsvin, open('new.csv', 'wb') as csvout:

    tsvin = csv.reader(tsvin, delimiter='\t')
    csvout = csv.writer(csvout)

    for row in tqdm_notebook(tsvin):
            csvout.writerows([row[:] for _ in range(2)])