Επιλογή γραμμών DataFrame με βάση τις τιμές στηλών στην Python

Επιλογή γραμμών DataFrame με βάση τις τιμές στηλών στην Python
Python

Χρήση Pandas για φιλτράρισμα DataFrames κατά τιμές στηλών

Όταν εργάζεστε με δεδομένα στην Python, η βιβλιοθήκη Pandas προσφέρει ισχυρά εργαλεία για χειρισμό και ανάλυση δεδομένων. Μια κοινή εργασία είναι η επιλογή γραμμών από ένα DataFrame με βάση τις τιμές σε μια συγκεκριμένη στήλη. Αυτή η λειτουργία είναι παρόμοια με το ερώτημα SQL: SELECT * FROM πίνακα WHERE στήλη_όνομα = some_value.

Σε αυτό το άρθρο, θα διερευνήσουμε πώς να το πετύχετε αυτό στα Panda χρησιμοποιώντας διάφορες μεθόδους. Είτε φιλτράρετε με μία μόνο τιμή είτε με πολλαπλά κριτήρια, το Pandas παρέχει διαισθητικούς και αποτελεσματικούς τρόπους χειρισμού τέτοιων λειτουργιών. Ας βουτήξουμε στις λεπτομέρειες.

Εντολή Περιγραφή
pd.DataFrame() Δημιουργεί ένα αντικείμενο DataFrame από λεξικό ή άλλες δομές δεδομένων.
df[condition] Φιλτράρει τις σειρές DataFrame με βάση μια συνθήκη, επιστρέφοντας μόνο εκείνες που πληρούν τα κριτήρια.
print() Εξάγει το καθορισμένο μήνυμα ή το DataFrame στην κονσόλα.
df['column'] == value Δημιουργεί μια boolean σειρά που χρησιμοποιείται για το φιλτράρισμα σειρών όπου η στήλη ταιριάζει με την καθορισμένη τιμή.
df['column'] >df['column'] > value Δημιουργεί μια boolean σειρά που χρησιμοποιείται για το φιλτράρισμα σειρών όπου οι τιμές στηλών είναι μεγαλύτερες από την καθορισμένη τιμή.
# Comment Χρησιμοποιείται για την προσθήκη επεξηγήσεων ή σημειώσεων εντός του κώδικα, οι οποίες δεν εκτελούνται ως μέρος του σεναρίου.

Εφαρμογή της επιλογής σειράς DataFrame στα Pandas

Στα σενάρια που παρέχονται, η βασική εργασία είναι να φιλτράρετε σειρές από ένα DataFrame με βάση συγκεκριμένες τιμές στηλών, μια κοινή απαίτηση στην ανάλυση δεδομένων. Το πρώτο σενάριο ξεκινάει εισάγοντας τη βιβλιοθήκη Pandas με import pandas as pd. Αυτό είναι απαραίτητο καθώς το Pandas είναι μια ισχυρή βιβλιοθήκη χειρισμού δεδομένων στην Python. Στη συνέχεια, δημιουργούμε ένα δείγμα DataFrame χρησιμοποιώντας pd.DataFrame() με ένα λεξικό που περιέχει δεδομένα για ονόματα, ηλικίες και πόλεις. Αυτή η δομή μας επιτρέπει να οπτικοποιούμε και να χειριζόμαστε εύκολα τα δεδομένα σε πίνακα. Το κρίσιμο μέρος του σεναρίου είναι όπου φιλτράρουμε τις σειρές χρησιμοποιώντας df[df['city'] == 'New York']. Αυτή η εντολή επιλέγει όλες τις σειρές όπου η τιμή της στήλης της πόλης είναι "Νέα Υόρκη". Το αποτέλεσμα αποθηκεύεται στη μεταβλητή ny_rows, το οποίο στη συνέχεια εκτυπώνεται για να εμφανιστεί το φιλτραρισμένο DataFrame.

Το δεύτερο σενάριο ακολουθεί παρόμοια δομή, αλλά εστιάζει στο φιλτράρισμα σειρών με βάση μια αριθμητική συνθήκη. Μετά την εισαγωγή των Panda και τη δημιουργία ενός DataFrame με στήλες προϊόντος, τιμής και ποσότητας, το σενάριο χρησιμοποιεί df[df['price'] > 150] για να φιλτράρετε σειρές όπου η τιμή είναι μεγαλύτερη από 150. Αυτή η εντολή παράγει ένα υποσύνολο του αρχικού DataFrame που περιέχει μόνο τις σειρές που πληρούν την καθορισμένη συνθήκη. Το αποτέλεσμα αποθηκεύεται σε expensive_products και εκτυπώθηκε για επαλήθευση. Και τα δύο σενάρια δείχνουν τη δύναμη και την απλότητα των Panda για χειρισμό δεδομένων. Χρησιμοποιώντας τη δυαδική ευρετηρίαση, μια μέθοδο όπου περνάμε μια σειρά από τιμές true/false για να φιλτράρουμε δεδομένα, μπορούμε να επιλέξουμε αποτελεσματικά υποσύνολα δεδομένων με βάση διάφορες συνθήκες, καθιστώντας το ένα ανεκτίμητο εργαλείο για αναλυτές δεδομένων και επιστήμονες.

Φιλτράρισμα σειρών σε ένα DataFrame με βάση τις τιμές στηλών

Python - Χρήση Pandas για λειτουργίες DataFrame

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

Ερώτημα σειρών DataFrame με βάση τις τιμές στηλών

Python - Προηγμένο φιλτράρισμα με Panda

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

Προηγμένες τεχνικές για την επιλογή σειρών DataFrame

Εκτός από το βασικό φιλτράρισμα με δυαδική ευρετηρίαση, το Pandas προσφέρει πιο προηγμένες τεχνικές για την επιλογή γραμμών με βάση τις τιμές στηλών. Μια τέτοια μέθοδος είναι η query() λειτουργία, η οποία σας επιτρέπει να χρησιμοποιείτε σύνταξη τύπου SQL για να φιλτράρετε σειρές DataFrame. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε df.query('age > 25 and city == "New York"') για να επιλέξετε σειρές όπου η ηλικία είναι μεγαλύτερη από 25 και η πόλη είναι η Νέα Υόρκη. Αυτή η μέθοδος μπορεί να κάνει τον κώδικά σας πιο ευανάγνωστο, ειδικά για πολύπλοκες συνθήκες. Επιπλέον, το Pandas παρέχει το loc[] και iloc[] αξεσουάρ για πιο ακριβή επιλογή σειρών. ο loc[] Το accessor βασίζεται σε ετικέτες, που σημαίνει ότι μπορείτε να φιλτράρετε τις σειρές με βάση τις ετικέτες τους ή έναν πίνακα boolean. Αντίθετα, το iloc[] Το accessor βασίζεται σε ακέραιο αριθμό, επιτρέποντάς σας να φιλτράρετε τις σειρές με βάση τις θέσεις ευρετηρίου τους.

Ένα άλλο ισχυρό χαρακτηριστικό των Pandas είναι η δυνατότητα φιλτραρίσματος σειρών DataFrame χρησιμοποιώντας το isin() μέθοδος. Αυτή η μέθοδος είναι χρήσιμη όταν χρειάζεται να φιλτράρετε σειρές με βάση μια λίστα τιμών. Για παράδειγμα, df[df['city'].isin(['New York', 'Los Angeles'])] επιλέγει σειρές όπου η τιμή της στήλης πόλης είναι είτε Νέα Υόρκη είτε Λος Άντζελες. Επιπλέον, μπορείτε να συνδέσετε πολλαπλές συνθήκες χρησιμοποιώντας το & και | χειριστές για τη δημιουργία πιο περίπλοκων φίλτρων. Για παράδειγμα, df[(df['age'] > 25) & (df['city'] == 'New York')] φιλτράρει σειρές όπου η ηλικία είναι μεγαλύτερη από 25 και η πόλη είναι η Νέα Υόρκη. Αυτές οι προηγμένες τεχνικές παρέχουν ένα ισχυρό πλαίσιο για το φιλτράρισμα δεδομένων, καθιστώντας τα Panda ένα ευέλικτο εργαλείο για ανάλυση και χειρισμό δεδομένων.

Συνήθεις ερωτήσεις σχετικά με την επιλογή γραμμών DataFrame στα Pandas

  1. Πώς μπορώ να φιλτράρω σειρές σε ένα DataFrame με βάση τις τιμές πολλών στηλών;
  2. Μπορείτε να χρησιμοποιήσετε τη δυαδική ευρετηρίαση με πολλαπλές συνθήκες συνδυασμένες χρησιμοποιώντας & και |. Για παράδειγμα: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. Ποια είναι η διαφορά μεταξύ loc[] και iloc[]?
  4. loc[] βασίζεται σε ετικέτες, ενώ iloc[] βασίζεται σε ακέραιο αριθμό. Χρήση loc[] για φιλτράρισμα ανά ετικέτες και iloc[] για φιλτράρισμα κατά θέσεις ευρετηρίου.
  5. Πώς μπορώ να χρησιμοποιήσω το query() λειτουργία για φιλτράρισμα σειρών DataFrame;
  6. ο query() Η λειτουργία σάς επιτρέπει να χρησιμοποιείτε σύνταξη τύπου SQL. Για παράδειγμα: df.query('age > 25 and city == "New York"').
  7. Μπορώ να φιλτράρω σειρές με βάση μια λίστα τιμών;
  8. Ναι, μπορείτε να χρησιμοποιήσετε το isin() μέθοδος. Για παράδειγμα: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. Ποιος είναι ο καλύτερος τρόπος για να φιλτράρετε σειρές με βάση την αντιστοίχιση συμβολοσειρών;
  10. Μπορείτε να χρησιμοποιήσετε το str.contains() μέθοδος. Για παράδειγμα: df[df['city'].str.contains('New')].
  11. Πώς μπορώ να επιλέξω σειρές όπου λείπουν οι τιμές στηλών;
  12. Μπορείτε να χρησιμοποιήσετε το isna() μέθοδος. Για παράδειγμα: df[df['age'].isna()].
  13. Πώς μπορώ να φιλτράρω σειρές χρησιμοποιώντας μια προσαρμοσμένη συνάρτηση;
  14. Μπορείτε να χρησιμοποιήσετε το apply() μέθοδος με συνάρτηση λάμδα. Για παράδειγμα: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. Μπορώ να φιλτράρω σειρές με βάση τις τιμές ευρετηρίου;
  16. Ναι, μπορείτε να χρησιμοποιήσετε το index.isin() μέθοδος. Για παράδειγμα: df[df.index.isin([1, 3, 5])].

Βασικά στοιχεία για την επιλογή σειράς DataFrame

Η επιλογή γραμμών από ένα DataFrame με βάση τις τιμές στηλών είναι μια θεμελιώδης δεξιότητα στην ανάλυση δεδομένων με τα Panda. Χρησιμοποιώντας boolean indexing, loc[], iloc[], query(), και isin() Οι μέθοδοι επιτρέπουν αποτελεσματικό φιλτράρισμα δεδομένων. Η γνώση αυτών των τεχνικών ενισχύει την ικανότητά σας να χειρίζεστε και να αναλύετε αποτελεσματικά τα σύνολα δεδομένων.