使用列名称在for循环中逐行更新DataFrame

时间:2019-08-21 19:08:17

标签: python pandas

我有一个DataFrame df,其中包含三列:“ val_1”,“ val_2”和“ winning_val”。 “ Val_1”和“ val_2”填充了值,并且“ winning_val”充满了NaN。我希望此for循环在df中循环并填写“ winning_val”列。

for i, row in df.iterrows():
            df.at[i, 'winning_val'] = find_winner(row)

此代码不会修改df,并且使“ winning_val”列充满NaN。我还需要能够通过字符串名称而不是索引来访问列。

1 个答案:

答案 0 :(得分:0)

您尝试过

df['winning_val'] = df.apply(find_winner, axis=1)

其中find_winner是一个定义为处理数据帧行的函数,例如:

def find_winner(row):
    return max(row['val_1'], row['val_2'])