2016-11-24 148 views
1

我讀了一個名爲df的csv文件,它有4列(id,skill,..)和30行,我希望程序檢查每個id,如果id是「 A035755「然後打印其相關技能(j)。我寫了下面的程序,它幾乎可以工作,但問題是它不止一次迭代,而不是30個結果,我有超過100個!
我認爲我的索引可能是問題,但不知道如何解決它。for循環python 3(多重迭代)

由於Ĵ

df=pd.read_csv('location') 
for i in df.id[0:len(df)]: #id is one of the columns 
    for j in df.skill:  #skill another column 
     if i == "A035755": 
      print(j) 
     else: 
      print("Not Found") 

回答

1

如果正確地明白,DF的屬性(df.id,df.skill)表示在列表中列和索引(df.id [1..N])表示的行,那麼正確的方法如下:

df = pd.read_csv('location') 
for index, rec_id in enumerate(df.id): #id is one of the columns 
    if rec_id == "A035755": 
     print(df.skill[index]) 
0

所以你可以迭代和引用索引。像這樣

for index,value in df.id.items(): #id is one of the columns 
     if value == "A035755": 
      print(df.skill[index]) 
     else: 
      print("Not Found") 

或者你可以反覆records

for record in df: 
    if record.id == "A035755": 
     print(record.skill) 
    else: 
     print("Not Found") 
+0

感謝,但沒有解決方案的工作。其實這個程序所做的,就是打印技能專欄3次,然後一次「未找到」 –

+0

您可以添加當前輸出和預期輸出到問題嗎? – harshil9968