2016-11-24 7 views
1

Я прочитал файл csv с именем df, который имеет 4 столбца (id, skill, ..) и 30 строк, я хочу, чтобы программа проверила каждый идентификатор, и если идентификатор " A035755 ", затем распечатайте соответствующий навык (j). Я написал следующую программу, она почти работает, но проблема в том, что она повторяется несколько раз, поэтому вместо 30 результатов у меня больше 100!
Я думаю, что моя индексация может быть проблемой, но не уверен, как ее исправить.Для цикла в python 3 (множественная итерация)

Благодаря J

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

Смежные вопросы