2017-06-19 20 views
2

我有三列在一個CSV文件,這樣,每一行的格式爲:如何通過將最後一列指定爲元組的第二個值來從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)] 

我在哪裏錯了?

回答

1

看來你需要:

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

我在使用拉鍊壞的()! –

-1

我猜你需要改變這個("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)

0

,如果你不需要任何進一步的轉變元組a,b,c您可以使用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

相關問題