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.
*** grep *** Wenn du es benutzt, sag niemals ... Es ist nur eine Praxis von Pandas.
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()
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
df[df["P"].str.contains("OSAKA")]
Die Stichprobe hat 5 Spalten, aber die tatsächlichen Daten haben 50 Spalten. Es ist ein wenig, sie alle hinzuzufügen ...
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.
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"]]
Immerhin ist grep + awk am stärksten. Es war ein gutes Training, aber ich fühlte mich im Plan ertrunken ...
Recommended Posts