对于python 3中的循环(多次迭代)

时间:2016-11-24 08:01:54

标签: python

我读了一个名为df的csv文件,它有4列(id,技能,..)和30行,我希望程序检查每个id,如果id为“A035755”,则打印其相关技能(j )。我编写了以下程序,它几乎可以工作,但问题是它不止一次迭代,而不是30个结果,我有超过100! 我认为我的索引可能是问题,但不知道如何解决它。

谢谢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")

2 个答案:

答案 0 :(得分: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])

答案 1 :(得分: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")