在以下情况下,如何在第二个 for 循环中访问 (i+1 ) 索引?

Posted

技术标签:

【中文标题】在以下情况下,如何在第二个 for 循环中访问 (i+1 ) 索引?【英文标题】:How to access (i+1 ) index in the second for loop in the below case? 【发布时间】:2021-05-14 01:32:07 【问题描述】:

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

  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

谁能帮我解决这个问题?

【问题讨论】:

分享完整代码。 哪一行是错误 第二个循环线 你不应该像这样开始使用熊猫。 那我应该怎么用你能帮我吗? 【参考方案1】:

您遇到的错误是因为 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' 列。如果您在条件为True 时想要特定的'Address',则应使用print(train['Address'][i])

【讨论】:

以上是关于在以下情况下,如何在第二个 for 循环中访问 (i+1 ) 索引?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python脚本中默认情况下在第二个TFT屏幕上运行套接字服务器控制台,而不是在主TFT屏幕上?

CodeIgniter:多个数据库 - 在第二个数据库中访问数据库配置

运行时错误,但仅在第二个循环中

在第二个 setOnClickListener 代码中使用 address.getLatitude() 访问纬度和经度失败

如何在不覆盖的情况下连续打开对话框

如何将变量值从循环A更新到另一个循环B - 在bash中