如何在python数据帧中处理带条件的循环

如何在python数据帧中处理带条件的循环,python,pandas,for-loop,dataframe,calculated-columns,Python,Pandas,For Loop,Dataframe,Calculated Columns,如果值(int)大于0,我当前正在尝试将1添加到整个列中。我目前使用的代码如下所示:` for coldcloudy in final.coldcloudy: final.loc[final['coldcloudy'] > 0,coldcloudy] +=1 然而,我不断得到一个“KeyError:0”。本质上,我希望代码在特定列中逐行执行,如果整数为零,则添加1。对于由1添加的值,我将添加到另一列。有人能帮忙吗?您不需要循环: final = pd.DataFrame({'co

如果值(int)大于0,我当前正在尝试将1添加到整个列中。我目前使用的代码如下所示:`

for coldcloudy in final.coldcloudy:
    final.loc[final['coldcloudy'] > 0,coldcloudy] +=1

然而,我不断得到一个“KeyError:0”。本质上,我希望代码在特定列中逐行执行,如果整数为零,则添加1。对于由1添加的值,我将添加到另一列。有人能帮忙吗?

您不需要循环:

final = pd.DataFrame({'coldcloudy':np.random.choice([0,1],20)})

final.loc[final.coldcloudy > 0, 'coldcloudy'] += 1

print(final)
输出:

    coldcloudy
0            2
1            2
2            0
3            0
4            2
5            2
6            0
7            2
8            0
9            0
10           2
11           2
12           0
13           2
14           2
15           0
16           2
17           0
18           2
19           2

您不需要for循环:

final = pd.DataFrame({'coldcloudy':np.random.choice([0,1],20)})

final.loc[final.coldcloudy > 0, 'coldcloudy'] += 1

print(final)
输出:

    coldcloudy
0            2
1            2
2            0
3            0
4            2
5            2
6            0
7            2
8            0
9            0
10           2
11           2
12           0
13           2
14           2
15           0
16           2
17           0
18           2
19           2

你能给你的帖子添加一个输入和输出示例吗?只需使用
final.coldcloudy[final.coldcloudy>0]+=1
你能给帖子添加一个输入和输出示例吗?只需使用
final.coldcloudy[final.coldcloudy>0]+=1