Jak porównać trzy kolumny w pandach (z przykładem)


Możesz użyć następującej podstawowej składni, aby porównać wartości trzech kolumn w pandach:

 df[' all_matching '] = df. apply ( lambda x: x.col1 == x.col2 == x.col3 , axis = 1 )

Ta składnia tworzy nową kolumnę o nazwie all_matching , która zwraca True , jeśli wszystkie kolumny mają pasujące wartości, w przeciwnym razie zwraca False .

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: porównaj trzy kolumny w Pandach

Załóżmy, że mamy następującą ramkę danych pand z trzema kolumnami:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' A ': [4, 0, 3, 3, 6, 8, 7, 9, 12],
                   ' B ': [4, 2, 3, 5, 6, 4, 7, 7, 12],
                   ' C ': [4, 0, 3, 5, 5, 10, 7, 9, 12]})

#view DataFrame
print (df)

    ABC
0 4 4 4
1 0 2 0
2 3 3 3
3 3 5 5
4 6 6 5
5 8 4 10
6 7 7 7
7 9 7 9
8 12 12 12

Możemy użyć poniższego kodu, aby utworzyć nową kolumnę o nazwie all_matching , która zwraca wartość True , jeśli wszystkie trzy kolumny w danym wierszu pasują, lub False , jeśli tak nie jest:

 #create new column that displays whether or not all column values match
df[' all_matching '] = df. apply ( lambda x: x. A == x. B == x. C , axis = 1 )

#view updated DataFrame
print (df)

    ABC all_matching
0 4 4 4 True
1 0 2 0 False
2 3 3 3 True
3 3 5 5 False
4 6 6 5 False
5 8 4 10 False
6 7 7 7 True
7 9 7 9 False
8 12 12 12 True

Nowa kolumna o nazwie all_matching wskazuje, czy wartości w trzech kolumnach pasują do siebie w danym wierszu.

Na przykład:

  • Wszystkie trzy wartości są zgodne w pierwszym wierszu, więc zwracana jest wartość True .
  • Nie wszystkie wartości w drugiej linii pasują, dlatego zwracana jest wartość False .

I tak dalej.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:

Jak zmienić nazwy kolumn w Pandach
Jak dodać kolumnę do ramki danych Pandas
Jak zmienić kolejność kolumn w Pandas DataFrame

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *