Jak filtrować wiersze w ramce danych Pandas na podstawie wartości kolumn

Temp mail SuperHeros
Jak filtrować wiersze w ramce danych Pandas na podstawie wartości kolumn
Jak filtrować wiersze w ramce danych Pandas na podstawie wartości kolumn

Filtrowanie wierszy w ramkach danych Pandas

Pandas to potężna biblioteka w Pythonie do manipulacji i analizy danych. Typowym zadaniem jest wybieranie wierszy z ramki DataFrame na podstawie wartości kolumn, podobnie jak w przypadku tabeli SQL SELECT * FROM WHERE nazwa_kolumny = jakaś_wartość.

Ten przewodnik przeprowadzi Cię przez różne metody osiągnięcia tego celu w Pandach, ułatwiając efektywne filtrowanie danych. Niezależnie od tego, czy jesteś początkującym, czy doświadczonym użytkownikiem, te wskazówki poprawią Twoje umiejętności obsługi danych.

Komenda Opis
pd.DataFrame(data) Tworzy DataFrame ze słownika danych.
df[column_name] Uzyskuje dostęp do kolumny w ramce danych według nazwy.
df[condition] Filtruje ramkę danych na podstawie warunku zastosowanego do kolumny.
print(selected_rows) Drukuje ramkę DataFrame lub jej podzbiór na konsoli.
df[df['Age'] >df[df['Age'] > 25] Wybiera wiersze, w których wartości w kolumnie „Wiek” są większe niż 25.
df[df['City'] == 'Chicago'] Wybiera wiersze, w których wartości w kolumnie „Miasto” są równe „Chicago”.

Zrozumienie wyboru wierszy DataFrame w Pandach

Dostarczone skrypty pokazują, jak wybierać wiersze z ramki DataFrame na podstawie wartości kolumn przy użyciu biblioteki Pandas w języku Python. Pierwszy skrypt rozpoczyna się od zaimportowania biblioteki Pandas za pomocą pliku import pandas as pd Komenda. Następnie tworzy przykładową ramkę DataFrame przy użyciu słownika danych, która jest konwertowana na ramkę DataFrame za pomocą pd.DataFrame(data) Komenda. Następnie skrypt ilustruje dwie metody wyboru wierszy: wybieranie wierszy, w których wartość w kolumnie „Wiek” jest większa niż 25, przy użyciu df[df['Age'] > 25]i wybierając wiersze, w których wartość kolumny „Miasto” to „Chicago”, używając df[df['City'] == 'Chicago']. Te filtrowane ramki danych są drukowane przy użyciu print() funkcja wyświetlająca wybrane wiersze.

Drugi skrypt ma podobną strukturę, ale wykorzystuje inne dane i kryteria wyboru. Tworzy ramkę danych zawierającą informacje o produkcie, w tym kolumny „Produkt”, „Cena” i „Zapasy”. Wybierane są wiersze, w których „Cena” jest mniejsza lub równa 200 df[df['Price'] <= 200]i gdzie „Zapasy” wynoszą ponad 40 df[df['Stock'] > 40]. Celem tych skryptów jest pokazanie, jak filtrować wiersze DataFrame na podstawie określonych warunków, podobnie jak przy użyciu zapytania SQL do wybierania wierszy z tabeli na podstawie wartości kolumny. Rozumiejąc i stosując te polecenia, możesz efektywnie manipulować i analizować dane w ramkach DataFrame.

Wybieranie wierszy w ramce danych przy użyciu wartości kolumn w Pandach

Python z biblioteką Pand

# Importing the necessary library
import pandas as pd

# Creating a sample DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)

# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)

# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)

Filtrowanie danych w ramce danych na podstawie kryteriów kolumn

Python z biblioteką Pand

# Importing pandas library
import pandas as pd

# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
        'Price': [100, 150, 200, 250, 300],
        'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)

# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)

# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)

Zaawansowane techniki wybierania wierszy ramki danych w Pandach

Oprócz podstawowego filtrowania przy użyciu indeksowania logicznego, Pandas oferuje zaawansowane techniki wybierania wierszy na podstawie wartości kolumn. Jedną z skutecznych metod jest użycie query() funkcja, która pozwala filtrować wiersze z wyrażeniem zapytania, dzięki czemu składnia jest czystsza i często bardziej intuicyjna. Na przykład zamiast używać df[df['Age'] > 25], Możesz pisać df.query('Age > 25'). Ta metoda jest szczególnie przydatna w przypadku bardziej złożonych warunków lub gdy nazwy kolumn zawierają spacje. Dodatkowo, isin() funkcja jest korzystna, gdy chcesz filtrować wiersze na podstawie listy wartości. Na przykład, aby wybrać wiersze, w których wartość w kolumnie „Miasto” to „Chicago” lub „Nowy Jork”, możesz użyć df[df['City'].isin(['Chicago', 'New York'])].

Inna technika polega na loc I iloc indeksatory. The loc indeksator opiera się na etykietach, co pozwala wybierać wiersze na podstawie etykiet wierszy i nazw kolumn, natomiast iloc opiera się na lokalizacji w postaci liczb całkowitych, umożliwiając wybór według numerów wierszy i kolumn. Ta elastyczność jest szczególnie przydatna przy wybieraniu wierszy na podstawie warunku zastosowanego do innej kolumny. Na przykład, df.loc[df['Age'] > 25, 'Name'] zwróci nazwiska osób starszych niż 25 lat. Metody te poszerzają zestaw narzędzi do wydajnej obsługi i analizowania danych w Pandach, oferując bardziej czytelny i łatwiejszy w utrzymaniu kod.

Często zadawane pytania i odpowiedzi dotyczące wybierania wierszy ramki danych

  1. Jak wybrać wiersze na podstawie wielu warunków?
  2. Możesz skorzystać z query() funkcjonuj lub łącz warunki za pomocą operatorów logicznych, takich jak & I |. Na przykład, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
  3. Czy mogę filtrować wiersze na podstawie listy wartości?
  4. Tak, użyj isin() funkcjonować. Na przykład, df[df['City'].isin(['Chicago', 'New York'])].
  5. Jaka jest różnica pomiędzy loc I iloc?
  6. loc opiera się na etykietach, podczas gdy iloc opiera się na lokalizacji całkowitej. Używać loc z etykietami wierszy/kolumn i iloc z indeksami wierszy/kolumn.
  7. Jak wybrać określone kolumny podczas filtrowania wierszy?
  8. Możesz użyć loc. Na przykład, df.loc[df['Age'] > 25, ['Name', 'City']].
  9. Jak sobie poradzić z brakującymi wartościami podczas wybierania wierszy?
  10. Użyj dropna() funkcja usuwająca wiersze z brakującymi wartościami, lub fillna() aby zastąpić je określoną wartością.
  11. Czy mogę używać wyrażeń regularnych do filtrowania wierszy?
  12. Tak str.contains() funkcjonować z regex=True Parametr umożliwia filtrowanie wierszy na podstawie wzorców wyrażeń regularnych. Na przykład, df[df['Name'].str.contains('^A', regex=True)].
  13. Jak filtrować wiersze na podstawie indeksu?
  14. Możesz użyć loc z nazwą indeksu. Na przykład, df.loc[df.index == 'some_index'].
  15. Co się stanie, jeśli nazwy moich kolumn zawierają spacje lub znaki specjalne?
  16. Użyj query() funkcja, która może obsługiwać takie nazwy kolumn za pomocą backticków. Na przykład, df.query('`column name` == value').

Końcowe przemyślenia na temat technik wyboru wierszy ramki danych

Wybieranie wierszy z ramki DataFrame na podstawie wartości kolumn w Pandach jest kluczową umiejętnością manipulacji danymi. Różne omówione metody, w tym indeksowanie logiczne, query(), isin()oraz indeksowanie oparte na etykietach i liczbach całkowitych za pomocą loc I iloc, zapewniają potężne narzędzia do skutecznego filtrowania danych. Opanowanie tych technik umożliwia lepszą analizę danych i czystszy, łatwiejszy w utrzymaniu kod.