循环精确列迭代

2024-09-30 05:25:46 发布

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

我有这样的代码,它检查A列中的值。如果满足条件,则代码将检查同一行的另一列中的值,并将该列中的值复制到A列中的值:

counter = 0

list_of_winners = []

for each in data.iterrows():
    winner = data.iloc[counter, 5]

    if winner == 'Red':
        vitazr = data.iloc[counter, 0]
        list_of_winners.append(vitazr)

    elif winner == 'Blue':
        vitazb = data.iloc[counter, 1]
        list_of_winners.append(vitazb)

    elif winner == 'Draw':
        draw = str('Draw')
        list_of_winners.append(draw)

    else:

        pass

    counter += 1 

这个解决方案适合我,我能够创建一个列表,然后将该列表放入原始数据帧,并替换我循环通过的值

我想问的是。。。。难道没有其他更优雅、更简短的方法来解决这个问题吗


Tags: of代码列表datacounterlistdrawelif
1条回答
网友
1楼 · 发布于 2024-09-30 05:25:46

您可以执行np.select

list_of_winners = np.select([data.iloc[:,5] == 'Red', 
                             data.iloc[:,5] == 'Blue',
                             data.iloc[:,5] == 'Draw'],
                            [data.iloc[:,0], data.iloc[:, 1], 'Draw',
                            default=None
                           )

相关问题 更多 >

    热门问题