我有一个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。我还需要能够通过字符串名称而不是索引来访问列。
答案 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'])