首页 > 解决方案 > 在以下情况下,如何在第二个 for 循环中访问 (i+1 ) 索引?

问题描述

火车是一个数据框,其中我有两列:

  Address   gender
0 abc        f
1 dfg        m
2 hjk        m
3 ert        m

当性别相同时,我需要对地址列执行一些操作,所以我正在使用这段代码而且我是 python 和 pandas 的新手,所以我不知道我是否正确有效地执行它。


for i in train.index:
    for j in train.index[i+1]:
        
        if train.loc[i,'gender']== train.loc[j,'gender']:
            print(train['Address'])

目前,此代码给出错误:

'int' object is not iterable

谁能帮我解决这个问题?

标签: pythonpandas

解决方案


您遇到的错误是因为train.index[i+1]不可交互。它是一个整数。

为什么不使用.shift第二个循环?

for i in train.index:
    if train.loc[i,'gender']== train['gender'].shift(-1)[i]:
        print(train['Address'])

请记住,该行将print(train['Address'])打印所有'Address'列。如果你想要具体'Address'的条件是True你应该使用print(train['Address'][i])


推荐阅读