


Wie wähle ich in Pandas eine Teilmenge von Daten im SQL-Abfragestil aus?
Einführung
In diesem Beitrag zeige ich Ihnen, wie Sie Pandas verwenden, um Datenanalysen mit Filterung im SQL-Stil durchzuführen. Die meisten Unternehmensdaten werden in Datenbanken gespeichert, für deren Abruf und Bearbeitung SQL erforderlich ist. Beispielsweise verfügen Unternehmen wie Oracle, IBM und Microsoft über eigene Datenbanken und eigene SQL-Implementierungen.
Datenwissenschaftler müssen sich irgendwann in ihrer Karriere mit SQL auseinandersetzen, da Daten nicht immer in CSV-Dateien gespeichert werden. Ich persönlich bevorzuge die Verwendung von Oracle, da die meisten Daten meines Unternehmens in Oracle gespeichert sind.
Szenario – 1 Nehmen wir an, wir haben die Aufgabe, alle Filme aus unserem Filmdatensatz zu finden, die die folgenden Kriterien erfüllen.
- Die Sprache des Films sollte Englisch (en) oder Spanisch (es) sein.
- Die Popularität des Films muss zwischen 500 und 1000 liegen.
- Der Status des Films muss veröffentlicht werden.
- Die Anzahl der Stimmen muss größer als 5000 sein. Für das obige Szenario sieht die SQL-Anweisung wie folgt aus.
SELECT FROM WHERE title AS movie_title ,original_language AS movie_language ,popularityAS movie_popularity ,statusAS movie_status ,vote_count AS movie_vote_count movies_data original_languageIN ('en', 'es') AND status=('Released') AND popularitybetween 500 AND 1000 AND vote_count > 5000;
Da Sie nun die SQL-Anweisung gesehen haben, die Ihren Anforderungen entspricht, machen wir es Schritt für Schritt mit Pandas. Ich zeige Ihnen zwei Möglichkeiten.
Methode 1: Boolescher Index
1. Laden Sie den Datensatz movies_data in einen DataFrame.
import pandas as pd movies = pd.read_csv("https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv")
Weisen Sie jeder Bedingung eine Variable zu.
languages = [ "en" , "es" ] condition_on_languages = movies . original_language . isin ( languages ) condition_on_status = movies . status == "Released" condition_on_popularity = movies . popularity . between ( 500 , 1000 ) condition_on_votecount = movies . vote_count > 5000
3. Kombinieren Sie alle Bedingungen (boolesches Array).
final_conditions = ( condition_on_languages & condition_on_status & condition_on_popularity & condition_on_votecount ) columns = [ "title" , "original_language" , "status" , "popularity" , "vote_count" ] # clubbing all together movies . loc [ final_conditions , columns ]
Titel | Originalsprache | Status | Beliebtheit | Abstimmungszahl < p> |
---|---|---|---|---|
95 Star | zh
| Veröffentlicht | 724.247784 | 10867 < /td> |
788 Deadpool | zh | Veröffentlicht | 514.569956 | 10995
|
Methode 2:- .query()-Methode. Die Methode
.query() ist eine Methode zum Filtern von Daten im SQL-Where-Klausel-Stil. Bedingungen können als Zeichenfolgen an diese Methode übergeben werden, Spaltennamen dürfen jedoch keine Leerzeichen enthalten.
Wenn die Spaltennamen Leerzeichen enthalten, verwenden Sie die Python-Ersetzungsfunktion, um diese durch Unterstriche zu ersetzen. < /p>
Meiner Erfahrung nach ist die query()-Methode schneller als frühere Methoden, wenn sie auf größere DataFrames angewendet wird.
import pandas as pd movies = pd . read_csv ( "https://raw.githubusercontent.com/sasankac/TestDataSet/master/movies_data.csv" )
4. Erstellen Sie die Abfragezeichenfolge und führen Sie die Methode aus.
Bitte beachten Sie, dass die .query-Methode nicht mit Zeichenfolgen in dreifachen Anführungszeichen funktioniert, die sich über mehrere Zeilen erstrecken.
final_conditions = ( "original_language in ['en','es']" "and status == 'Released' " "and popularity > 500 " "and popularity < 1000" "and vote_count > 5000" ) final_result = movies . query ( final_conditions ) final_result
Budget< /p> | id | Originalsprache | Originaltitel | Beliebtheit | Veröffentlichungsdatum | Umsatz | Laufzeit | st | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
95 | 165000000 | 157336 | zh | interstellar | 724.247784 | 11. Mai 2014 58000000< /p> | 293660 | zh | der Kellner | |||||||||
2. September 2016 | 783112979 | < td>108.0Beziehung | p> | und viele mehr, normalerweise in meinem In meiner Codierung habe ich mehrere Werte um meine „in“-Klausel einzuchecken. Daher ist die obige Syntax nicht ideal. Python-Variablen können mit dem at-Symbol (@) referenziert werden.Sie können Werte auch programmgesteuert als Python-Listen erstellen und diese mit (@) verwenden. movie_languages = [ 'en' , 'es' ] final_conditions = ( "original_language in @movie_languages " "and status == 'Released' " "and popularity > 500 " "and popularity < 1000" "and vote_count > 5000" ) final_result = movies . query ( final_conditions ) final_result Nach dem Login kopieren | Budget | id
OriginalspracheOriginaltitel
Veröffentlichungsdatum | Umsatz
| Laufzeit: 95 zh | interstellar | 724.247784 | 2014 11. Mai 000000 293660 783112979 |
108.0 |
Beziehung |
---|
Das obige ist der detaillierte Inhalt vonWie wähle ich in Pandas eine Teilmenge von Daten im SQL-Abfragestil aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Artikel wird die Optimierung von MySQL -Speicherverbrauch in Docker untersucht. Es werden Überwachungstechniken (Docker -Statistiken, Leistungsschema, externe Tools) und Konfigurationsstrategien erörtert. Dazu gehören Docker -Speichergrenzen, Tausch und CGroups neben

Dieser Artikel befasst sich mit MySQLs Fehler "Die freigegebene Bibliotheksfehler". Das Problem ergibt sich aus der Unfähigkeit von MySQL, die erforderlichen gemeinsam genutzten Bibliotheken (.SO/.dll -Dateien) zu finden. Lösungen beinhalten die Überprüfung der Bibliotheksinstallation über das Paket des Systems m

In dem Artikel werden mithilfe der Änderungstabelle von MySQL Tabellen, einschließlich Hinzufügen/Löschen von Spalten, Umbenennung von Tabellen/Spalten und Ändern der Spaltendatentypen, erläutert.

Dieser Artikel vergleicht die Installation von MySQL unter Linux direkt mit Podman -Containern mit/ohne phpmyadmin. Es beschreibt Installationsschritte für jede Methode und betont die Vorteile von Podman in Isolation, Portabilität und Reproduzierbarkeit, aber auch

Dieser Artikel bietet einen umfassenden Überblick über SQLite, eine in sich geschlossene, serverlose relationale Datenbank. Es beschreibt die Vorteile von SQLite (Einfachheit, Portabilität, Benutzerfreundlichkeit) und Nachteile (Parallelitätsbeschränkungen, Skalierbarkeitsprobleme). C

In diesem Handbuch wird die Installation und Verwaltung mehrerer MySQL -Versionen auf macOS mithilfe von Homebrew nachgewiesen. Es betont die Verwendung von Homebrew, um Installationen zu isolieren und Konflikte zu vermeiden. Der Artikel Details Installation, Starten/Stoppen von Diensten und Best PRA

In Artikel werden die Konfiguration der SSL/TLS -Verschlüsselung für MySQL, einschließlich der Erzeugung und Überprüfung von Zertifikaten, erläutert. Das Hauptproblem ist die Verwendung der Sicherheitsauswirkungen von selbstsignierten Zertifikaten. [Charakterzahl: 159]

In Artikel werden beliebte MySQL -GUI -Tools wie MySQL Workbench und PhpMyAdmin beschrieben, die ihre Funktionen und ihre Eignung für Anfänger und fortgeschrittene Benutzer vergleichen. [159 Charaktere]
