如何通过将最后一列指定为元组的第二个值来读取csv文件?

2024-10-03 00:27:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在中有一个csv文件,其中有三列,因此,每行的格式如下:

"abcdef" "uvwxyz" 0

我想生成一个元组列表,元组的第一个元素是从前两列中提取的一些特征的字典,而第二个元素只是表示特征标签的第三列(0或1值)值。你知道吗

我尝试了以下操作,但它抛出了一些语法错误,表示我在最后一行中未定义:

dataframe = pd.read_csv(csv_file, header = None, delimiter = "\t")
a = dataframe[0]
b = dataframe[1]
label = dataframe[2]
feature = [(findFeature(x,y), labels) for x,y in i for i, labels in  zip(zip(a,b), label)]

我错在哪里?你知道吗


Tags: 文件csvin元素dataframe列表forlabels
3条回答

如果不需要任何进一步的转换,可以使用csv库而不是pandas

import csv
with open(csv_file) as f:
    reader  = csv.reader(f)
    feature = [(findFeature(x,y), z) for x,y,z in reader]

您可以找到csv包用法here的示例

看来你需要:

feature = [(findFeature(x,y), label) for x,y, label in zip(a,b,label)]

我猜你需要把这个("abcdef", "uvwxyz", 0)转换成("abcdef", 0, "uvwxyz")

with open(csv_file, "r") as f:
    dataframe = [(a,c,b) for a,b,c in map(lambda x: x.split("\t"), f)]

在拆分每行并重新打包到(a,c,b)时,在中打开元组a,b,c

相关问题 更多 >