[PYTHON] So finden Sie heraus, ob "irgendwo" von pandas DataFrame einen Wert enthält

Übersicht (TL; DR)

Jede Spalte kann in einer CSV-Datei mit 50 Spalten x 3 Millionen Zeilen verwendet werden. Als ich also aufgefordert wurde, eine Zeile mit einem bestimmten Zeichen zu extrahieren, konnte ich sie nicht in Excel öffnen und habe es mit Pandas versucht.

Hinweis

*** grep *** Wenn du es benutzt, sag niemals ... Es ist nur eine Praxis von Pandas.

Beispieldaten

Es ist mühsam, in csv mit 50 Spalten x 3 Millionen Zeilen zu schreiben, daher sind die folgenden Beispieldaten. (Die tatsächlichen Daten sind NaN, daher war es etwas komplizierter.)

df = pd.DataFrame({"NAME":["Alice","Bob","Charly","Eve","Frank"],
                   "AGE":[10,20,30,20,10],
                  "ADDRESS":["TOKYO","OSAKA","TOKYO","OSAKA","AICHI"],
                  "COMPANY_PLACE":["TOKYO","TOKYO","AICHI","OSAKA","OSAKA"],
                  "BIRTH_PLACE":["TOKYO","OSAKA","TOKYO","OSAKA","OSAKA"]
                  })
df.head()

スクリーンショット 2020-03-27 23.17.58.png

Strategie A: Erstellen Sie eine Spalte, die alle Spalten kombiniert

Alles, was Sie tun müssen, ist, alle Spalten zu kombinieren und eine teilweise Übereinstimmungssuche für diese Spalte durchzuführen!

df["P"] = df['ADDRESS'].str.cat(df['COMPANY_PLACE'], sep='-').str.cat(df['BIRTH_PLACE'], sep='-')
df

スクリーンショット 2020-03-27 23.20.40.png

df[df["P"].str.contains("OSAKA")]
スクリーンショット 2020-03-27 23.23.07.png

Die Stichprobe hat 5 Spalten, aber die tatsächlichen Daten haben 50 Spalten. Es ist ein wenig, sie alle hinzuzufügen ...

Strategie B: Lassen Sie uns die Verbindung von Spalten entwerfen


df = df.drop("P",axis=1)
df["P"] = [""] * len(df)
for column in df.columns.values:
    if column != "P":
        df["P"] = df["P"].str.cat(df[column].astype(str), sep='-')
df[df["P"].str.contains("OSAKA")]

Da die Gefahr besteht, dass Zeichenfolgen und Zahlen gemischt werden, ist es wichtig, beim Cating Astype (str) zu verwenden.

スクリーンショット 2020-03-28 0.18.40.png

Strategie C: Durchsuchen Sie jede Spalte und fassen Sie die Ergebnisse zusammen.

df["P"] = [False] * len(df)
for column in df.columns.values:
    df["P"] = df["P"] | df[column].astype(str).str.contains("OSAKA")
df[df["P"]]
スクリーンショット 2020-03-28 0.10.06.png

Fazit

Immerhin ist grep + awk am stärksten. Es war ein gutes Training, aber ich fühlte mich im Plan ertrunken ...

Recommended Posts

So finden Sie heraus, ob "irgendwo" von pandas DataFrame einen Wert enthält
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
So überprüfen Sie, ob ein Wert in einem Aufzählungstyp vorhanden ist
So erhalten Sie einen Überblick über Ihre Daten in Pandas
So weisen Sie den Index im Pandas-Datenrahmen neu zu
Gibt es NaN im Pandas DataFrame?
So finden Sie heraus, welche Art von Datei in S3 in Python gespeichert ist
Python: Tipps zum Anzeigen eines Arrays (einer Liste) mit einem Index (wie man herausfindet, welche Nummer ein Element eines Arrays ist)
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
So finden Sie die optimale Anzahl von Clustern für k-means
[Pandas] Wenn sich die Daten der ersten Zeile im Header von DataFrame befinden
[Python] Wie schreibe ich eine if-Anweisung in einen Satz?
So überprüfen Sie anhand des Hashwerts, ob der Inhalt des Wörterbuchs in Python identisch ist
Finden Sie heraus, wie viele Zeichen sich in der Zeichenfolge befinden.
Wenn im Python-Wörterbuch auf einen nicht vorhandenen Schlüssel zugegriffen wird, initialisieren Sie ihn mit einem beliebigen Wert
Ich habe versucht herauszufinden, in welcher Sprache die Software geschrieben ist, um die ich mich immer kümmere
Wie Sie die interne Struktur eines Objekts in Python kennen
Ich habe versucht herauszufinden, ob ReDoS mit Python möglich ist
Was tun, wenn "Unbenannt: 0" in_csv-> read_csv von Pandas hinzugefügt wird?
Ich werde erklären, wie man Pandas auf leicht verständliche Weise benutzt.
Wie man nüchtern mit Pandas schreibt
Was tun, wenn in python json .dumps eine Dezimalstelle enthalten ist?
So ändern Sie mehrere Spalten von csv in Pandas (Unixtime-> Japan Time)
So erhalten Sie mit pandas DataFrame einen bestimmten Spaltennamen und Indexnamen
So ermitteln Sie die Anzahl der CPUs ohne den Befehl sar
So vergleichen Sie, ob der Inhalt der Objekte in scipy.sparse.csr_matrix identisch ist
So finden Sie eine Spalte eines bestimmten Typs (str, float usw.) aus einer Spalte in einem DataFrame
Ich möchte einen beliebigen Befehl im Befehlsverlauf von Shell belassen
In Python-Pandas SettingWithCopyWarning Ein Wert versucht, auf einer Kopie eines Slice aus einem DataFrame festgelegt zu werden. Verwenden Sie stattdessen .loc [row_indexer, col_indexer] = value
[Python] Zusammenfassung der Verwendung von Pandas
[Pandas] Was ist set_option?
So erhalten Sie den "Namen" eines Feldes, dessen Wert durch das Auswahlattribut im Django-Modell begrenzt ist
Lesen von CSV-Dateien mit Pandas
Verwendung ist und == in Python
Finden Sie heraus, wie Sie eine Datei mit einer bestimmten Anzahl von Zeilen gleichmäßig teilen können
So ermitteln Sie den Koeffizienten der ungefähren Kurve, die in Python durch die Scheitelpunkte verläuft
So finden Sie den Bereich des Boronoi-Diagramms
So verfolgen Sie die Arbeit mit Powershell
Zusammenfassung zum Importieren von Dateien in Python 3
So erhalten Sie Hilfe in einer interaktiven Shell
Löschen Sie Zeilen mit beliebigen Werten in pandas DataFrame
Zusammenfassung der Verwendung von MNIST mit Python
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
So speichern Sie eine Python-Funktion im Wert eines Wörterbuchs (dict) und rufen die Funktion gemäß dem Schlüssel auf
So überprüfen Sie, ob es sich um einen Wörterbuch-Typ (Wörterbuch, Hash) handelt, indem Sie einen oder alle verwenden
Was tun, wenn der Fortschrittsbalken in tqdm von Python nicht angezeigt wird?
Ich habe Python verwendet, um mich über die Rollenauswahl der 51 "Yachten" in der Welt zu informieren.
So finden Sie heraus, welcher Prozess den localhost-Port verwendet, und stoppen ihn