2016-08-24 2 views
2

Diese Frage ist sehr ähnlich, die ich hier gefragt:Was ist die geeignete Methode, um einen Datenrahmen durch pandas.dataframe.query method() durch eine Teilmenge zu ersetzen?

Python Pandas SettingWithCopyWarning copies vs new objects

Ich mag würde verstehen, wie ich Aufzeichnungen innerhalb eines bestimmten Datenrahmen ausschließen kann (IE auf dem Datenrahmen arbeitet und nicht eine Ansicht davon) Sie haben auch die Möglichkeit, zusätzliche Operationen auf die Ergebnisse anzuwenden.

Ich habe Probleme damit zu verstehen, wie Python die Zuweisung von Referenzen und Werten verwaltet, wenn man mit Pandas DataFrame-Objekten arbeitet. Ich arbeite mit einem Dataset, das in einem Pandas-Dataframe enthalten ist, und möchte das Set basierend auf bestimmten Attributwerten reduzieren. Ich möchte auch zusätzliche Operationen auf die Ergebnisse dieser Operation anwenden. Die bevorzugte Methode, die ich verwenden möchte, ist die .query() -Methode. Hier ist ein einfaches Beispiel:

mydf = pd.DataFrame({'col1':['A','B','C'], 
       'col2':['x','y','z']}) 
mydf = mydf.query('col1 == \'A\'') 

Dies wird konzeptionell erreichen, was ich suche; eine Reduzierung des Datensatzes, mit dem ich arbeite, basierend auf einer Abfrage dagegen. Die Frage, die ich habe, ist dies:

„Ist dies die richtige Anwendung der Abfrage-Funktion oder sollte ich etwas anderes tun, wenn ich zusätzliche Operationen haben auf‚mydf‘to perform“?

Ich habe durch this documentation gelesen, aber immer noch nicht verstehen, was Gefahren für aufpassen ...

Antwort

2

Ich denke, das ein richtiger Ansatz ist, wenn Sie die Daten nicht mehr benötigen, der herausgefiltert wurde (reduziert). Sie können auch die Kette Ihr "zusätzliche Operationen" (was ziemlich effizient ist) wie folgt aus:

mydf = mydf.query('col1 == "A"').func1(...).func2(...).func3(...) 

Here is a link to the documentation with lots of examples of how to use the query() method

+0

Perfect - dank MAXU. Ich habe dich fast direkt in den Kommentaren meiner letzten Frage gefragt;). Dieses Thema (Referenz vs. Wertzuweisung) ist im Allgemeinen eines, mit dem ich in der Welt von Python die schwierigste Zeit hatte. Schätze die Hilfe! – Sevyns

+1

@Sevyns, Sie sind herzlich willkommen! Es ist schwierig, vorherzusagen, wann Pandas eine Kopie Ihrer Daten machen und wann wird es über die „Sicht“ arbeiten - wenn Sie es im Detail verstehen wollen, können Sie einen Blick auf die Quellen nehmen unter 'your_python_path/Lib/site-packages/Pandas/'- es braucht Zeit, aber es macht Spaß ... – MaxU

Verwandte Themen