Zamień wartości w kolumnach i wierszach w określonych warunkach [duplikat]

Dec 03 2020

Mam następującą ramkę danych pandy:

i chcę sprawdzić, czy wartość w kolumnie 'A start'jest ujemna. Jeśli jest ujemna niż zamień wartości w kolumnie 'start'i 'end'iw kolumnach 'A start'oraz 'A end'w wierszu, w którym

'A start'ma wartość ujemną. Wynik powinien więc wyglądać następująco:

Próbowałem go rozwiązać, whereale to nie zadziałało.

Używam Pythona 3.8.

Bardzo ci dziękuje za pomoc.

Odpowiedzi

AasthaSethia Dec 03 2020 at 20:37

Hej, spójrz na ten post, jest podobny do twojego pytania, może pomóc! Jeśli nie, daj mi znać, poszukaj innych opcji.

Jaka jest poprawna składnia zamiany wartości kolumn dla wybranych wierszy w ramce danych pandy przy użyciu tylko jednej linii?

kirtipurohit Dec 03 2020 at 20:42

Oto najprostsza metoda korzystania z 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

Wynik: