Permuter les valeurs dans les colonnes et les lignes dans des conditions spécifiques [dupliquer]

Dec 03 2020

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 wheremais cela n'a pas fonctionné.

J'utilise python 3.8.

Merci beaucoup pour votre aide.

Réponses

AasthaSethia Dec 03 2020 at 20:37

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?

kirtipurohit Dec 03 2020 at 20:42

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: