数据帧迭代不会增加variab

2024-10-01 00:15:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在循环(讽刺的是)试图得到一小段代码来迭代数据帧的每一行。 如果我执行一个单行条件,结果就是我所需要的,但是一旦我尝试迭代,它就会停止工作。你知道吗

下面是代码片段:

i = 1
j = 100
if (i < j):
    htref = new_resultsdf.iloc[0, 1]
    validornot = home_form_5.loc[(home_form_5.iloc[:, 0] == htref) & (home_form_5['scored'] > 6) & (home_form_5['conceeded'] > 6) & (home_form_5['CScount'] < 2) & (home_form_5['DNScount'] < 2) & (home_form_5['o1.5Count'] > 3)].all() == 1
    answer = validornot.all()
    if answer == True:
        new_resultsdf.iloc[0, 23] = 'Yes'
        validfixturedf = new_resultsdf[(new_resultsdf['Valid'].isin(['Yes']))]
    else:
        new_resultsdf.iloc[0, 23] = 'Nope'
        notvalidfixturedf = new_resultsdf[(new_resultsdf['Valid'].isin(['Nope']))]
    new_resultsdf = new_resultsdf.loc[new_resultsdf['Valid'] == 'pending']
    new_resultsdf.reset_index(drop=True, inplace=True)
    i = (i+1)
else:
    call_ref = len(new_resultsdf.index)
    call_ref

call\u ref从280开始(注意这里的j=100,因为我只是想先测试一个较小的样本)。我把它放在“else”后面,不是因为我想我需要它,而是因为我可以看到数据帧的长度以及它是否工作。你知道吗

如果删除以下内容,我可以使call\u ref以1为增量递减:

i = 1
    j = 100
    if (i < j):

最后一个“else”

当我把它加回去的时候,“I”增加1到2,但就是这样。就一圈!你知道吗

我很感激有一种更适合python的方法来做这件事,我也研究了各种其他的方法,但是因为我只需要为每个迭代在第一行执行一个操作,所以我找不到合适的方法来做这件事。你知道吗

更详细地说,新的结果是德国联赛的结果。你知道吗

仅对于第一行并且在没有更多行之前,我希望查看主队'htref',并使用'htref'查找表单数据框'home\u form\u 5'。 如果满足条件,“Valid”列条目将从“pending”更改为“Yes”,否则将更改为“Nope”。你知道吗

htref = new_resultsdf.iloc[0, 1]
validornot = home_form_5.loc[(home_form_5.iloc[:, 0] == htref) & (home_form_5['scored'] > 6) & (home_form_5['conceeded'] > 6) & (home_form_5['CScount'] < 2) & (home_form_5['DNScount'] < 2) & (home_form_5['o1.5Count'] > 3)].all() == 1
answer = validornot.all()
if answer == True:
    new_resultsdf.iloc[0, 23] = 'Yes'
    validfixturedf = new_resultsdf[(new_resultsdf['Valid'].isin(['Yes']))]
else:
    new_resultsdf.iloc[0, 23] = 'Nope'
    notvalidfixturedf = new_resultsdf[(new_resultsdf['Valid'].isin(['Nope']))]

第一行放在“validfixturedf”或“notvalidfixturedf”中,并通过在“Valid”列中仅获取具有“pending”的行,从“new_resultsdf”中删除。你知道吗

new_resultsdf = new_resultsdf.loc[new_resultsdf['Valid'] == 'pending']

最终我需要“home\u form\u 5”在每次迭代后都是动态的和更新的,但是当我采取这些步骤时,我想先让“new\u resultsdf”的交互工作开始。

我所期望的是'I'将递增到'j',迭代将停止。我发现‘I’只增加到2。你知道吗

这已经困扰了我一段时间了,部分原因是我读到了关于不在数据帧上循环的内容,这会导致我尝试不同的解决方案,但是这个解决方案是我唯一尝试过的一种,哪种解决方案有效-如果我一次迭代一行代码,而不运行“I<;j”行,它就有效。你知道吗


Tags: 数据formhomenewifallelseloc