Home > database >  Data frame: get row and update it
Data frame: get row and update it

Time:10-13

I want to select a row based on a condition and then update it in dataframe.

One solution I found is to update df based on condition, but I must repeat the condition, what is the better solution so that I get the desired row once and change it?

df.loc[condition, "top"] = 1
df.loc[condition, "pred_text1"] = 2
df.loc[condtion, "pred1_score"] = 3

something like:

row = df.loc[condition]
row["top"] = 1
row["pred_text1"] = 2
row["pred1_score"] = 3

CodePudding user response:

Extract the boolean mask and set it as a variable.

m = condition
df.loc[m, 'top'] = 1
df.loc[m, 'pred_text1'] = 2
df.loc[m, 'pred1_score'] = 3

but the shortest way is:

df.loc[condition, ['top', 'pred_text1', 'pred_score']] = [1, 2, 3]
  • Related