首页 文章

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

提问于
浏览
2

我有一个带有三列的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)]

我哪里错了?

3 回答

  • -1

    如果您不需要任何进一步的转换,您可以使用 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

  • 1

    看来你需要:

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

    我猜你需要将 ("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

相关问题