I have a dataframe such as :
COL1 COL2 Value
A B -
C D +
E F +
G H -
I J -
K L -
M N -
O P +
I would like to switch values between COL1 and COL2 when the column Value == "-".
Does someone have an idea ?
I guess I should use something like :
m = tab['Value'].eq('-')
np.where(....
>Solution :
UseDataFrame.loc with convert values to numpy array:
m = df['Value'].eq('-')
df.loc[m, ['COL1','COL2']] = df.loc[m, ['COL2','COL1']].to_numpy()
print (df)
COL1 COL2 Value
0 B A -
1 C D +
2 E F +
3 H G -
4 J I -
5 L K -
6 N M -
7 O P +
Or numpy.where with broadcasting mask:
m = df['Value'].eq('-')
df[['COL1','COL2']] = np.where(m.to_numpy()[:, None],
df[['COL2','COL1']],
df[['COL1','COL2']])