Python: Pandas Serie - Warum mit der loc?

Warum verwenden wir 'loc' für pandas dataframes? es scheint, die folgenden code mit oder ohne Verwendung von loc beide kompilieren anr laufen simulular Geschwindigkeit

%timeit df_user1 = df.loc[df.user_id=='5561']

100 loops, best of 3: 11.9 ms per loop

oder

%timeit df_user1_noloc = df[df.user_id=='5561']

100 loops, best of 3: 12 ms per loop

Warum also loc?

Edit: Dies wurde gekennzeichnet als eine doppelte Frage. Aber obwohl pandas iloc vs ix vs loc Erklärung? erwähnt, dass *

können Sie tun, Spalte Abruf nur durch die Verwendung der Daten-frame ist
getitem:

*

df['time']    # equivalent to df.loc[:, 'time']

es nicht sagen, warum wir verwenden, loc, obwohl es erklärt viele Eigenschaften von loc, meine konkrete Frage ist: "warum nicht einfach weglassen loc insgesamt'? für die ich angenommen haben, eine sehr ausführliche Antwort unten.

Auch die anderen post die Antwort (was ich nicht glaube ist eine Antwort) ist sehr versteckt in der Diskussion und jede person, die nach dem suchen, was ich suchte, würde es schwierig finden, um die gewünschten Informationen finden und würde viel besser gedient, indem die Antwort auf meine Frage.

  • Mögliche Duplikate von pandas iloc vs ix vs loc Erklärung?
  • nicht wirklich, es sind Sie diskutieren Sie den Unterschied zwischen .loc .iloc und .- ix, aber hier bin ich einfach zu Fragen, warum .loc überhaupt nicht, warum es über .iloc oder .ix, Im nicht interessiert, iloc oder ix, Im Versuch zu verstehen, loc ersten und warum wir es verwenden, im Gegensatz zu nur verlassen Sie mit nichts in seinem Ort.
  • das Ende des Antwort von ajcr, die enthält eine Allgemeine Nutzung sowohl .loc und .iloc vs .ix: oder die relavent Teil ", wenn Sie nur die Indizierung durch die Verwendung von labels, oder nur die Indizierung unter Verwendung der integer-Positionen, stick mit loc oder iloc um unerwartete Ergebnisse zu vermeiden."
  • Pandas fällt zurück auf .iloc wenn .loc nichts zurück glaubwürdig. Hier ist eine aktuelle Diskussion zum Thema stackoverflow.com/questions/38860772/... Deine Frage ist eine exakte Kopie von dieser, leider.
  • Wie groß der dataframe ist ?
  • Im wesentlichen gibt es fallen Rücken und besten Vermutungen, dass pandas macht, wenn Sie nicht geben Sie die Indizierung Technik. So geht es durch jeden von Ihnen. Auf einen DataFrame, der Standardwert ist die Verwendung .loc auf Spalten. Reihe, der Standardwert ist die Verwendung .loc auf Zeilen, denn es gibt keine Spalten.
  • JGreenwell und Kartik - verstehe ich nicht. Ich bin nicht, ich wiederhole, ich bin nicht daran interessiert, irgendetwas zu tun .iloc, können nur so tun .iloc nicht vorhanden und können so tun .ix nicht vorhanden. Ich will nur wissen, warum ich verwenden soll .loc, anstatt einfach verlassen Sie alle zusammen wie in dem code in meiner Frage.
  • Die Verwendung von __getitem__ im Vergleich .loc ist erklärt, in der zweiten Antwort in die Frage, die ich verlinkt
  • Verwandte: der Umgang mit SettingWithCopyWarning in pandas? (insbesondere, siehe die Antwort von mir)

InformationsquelleAutor Runner Bean | 2016-08-11
Schreibe einen Kommentar