Ich habe zwei Fragen und sie sind beide in fett in der Post unten.Pandas: bevorzugte Idiome für Boolean/Prädikat sucht
Betrachten Sie diese DataFrame
:
from pandas import DataFrame
df_1 = DataFrame ({
"x" : ["a - {}".format(i) for i in range(2)] +
["b - {}".format(i) for i in range(2)] ,
"y" : range(4)
})
df_1
Angenommen, ich wollte, dass alle Zeilen, in denen der x
Wert mit dem Buchstaben "a" gestartet.
Ist das Folgende das bevorzugte Idiom für eine solche Suche?
df_1[df_1["x"].apply(lambda val : val.startswith("a"))]
Eine Sache, die ich in Pandas finden, ist, dass, sobald aussagekräftige Daten wird ein DataFrame
Index, ist es schwieriger, Dinge mit ihm zu tun, vor allem es abfragen. Angenommen, wir haben jetzt:
df_2 = df_1.set_index(["x"], drop=True)
df_2
ich feststellen, dass die gleiche Suche zu tun, mehr Arbeit beteiligt ist, wenn ich den Index bin auf der Suche.
Ist das Folgende das bevorzugte Idiom für eine solche Suche?
df_2.iloc[[i for i,val in enumerate(df_2.index.tolist()) if val.startswith("a")], :]
Ich war mir dieser 'str' Methoden nicht bewusst. Dies eröffnet eine völlig neue Welt. Danke! –