Permuter les valeurs dans les colonnes et les lignes dans des conditions spécifiques [dupliquer]
J'ai un dataframe pandas suivant:

et je veux vérifier si la valeur de la colonne 'A start'
est négative. Si négatif que permuter les valeurs dans la colonne 'start'
et 'end'
et dans les colonnes 'A start'
et 'A end'
dans la ligne où le
'A start'
a une valeur négative. Le résultat devrait donc être:

J'ai essayé de le résoudre avec where
mais cela n'a pas fonctionné.
J'utilise python 3.8.
Merci beaucoup pour votre aide.
Réponses
Hé, regardez ce post, il est similaire à votre question, cela pourrait aider! Sinon, faites-le moi savoir, vous pouvez rechercher d'autres options.
Quelle est la syntaxe correcte pour permuter les valeurs de colonne pour les lignes sélectionnées dans un cadre de données pandas en utilisant une seule ligne?
Voici la méthode la plus simple utilisant where
df = pd.DataFrame()
df['start'] = [1,5,7,2]
df['end'] = [4,6,8,9,]
df['A start'] = [234, -475, -765, 113]
df['A end'] = [-654, 312, 987, -553]
df[['A start','A end']] = df[['A end','A start']].where(df['A start'] < 0 , df[['A start','A end']].values)
df
Production:
