ich mit einem Datenrahmen ‚Kopie‘ erstellt von gerade arbeite Unter Einstellung eines vorherigen - siehe unten:Python Pandas SettingWithCopyWarning Kopien vs neue Objekte
import random
import pandas as pd
df = pd.DataFrame({'data':list(random.sample(range(10,100),25))})
df_filtered = df.query('data > 20 and data < 80')
df_filtered.rename(columns={'data':'observations'},inplace=True)
Das Problem ist, wenn die Umbenennungs Methode, die ich genannt wird empfange eine Warnung von SettingWithCopy, die, so wie ich es verstehe, bedeutet, dass ich an einer Kopie des ursprünglichen (df in diesem Fall) Objekts arbeite. Der Warnungstext lautet: "Ein Wert versucht, auf eine Kopie eines Segments aus einem DataFrame festgelegt zu werden"
Ich fand this question, die mit einem anderen Ansatz zur Untergruppe beantwortet wurde. Ich bevorzuge die Dataframe.query() -Methode selbst (Syntax-weise). Gibt es eine Möglichkeit, ein neues Dataframe-Objekt mit der Methode .query() anstelle der vorgeschlagenen Methode in der Frage, die ich verknüpft habe, zu erstellen? Ich habe ein paar Optionen mit Iloc ausprobiert, bin aber bisher noch nicht erfolgreich gewesen.
mit
inplace=True
und verwendendf = df.function(...)
Technik zu vermeiden Was ist Ihr Ziel ? Möchten Sie einen DF mit unabhängigen Werten (eine Kopie) haben? Hinweis: es kostet zusätzlichen Speicher. – MaxUIn diesem Beispiel war meine Absicht für df_filtered, ein anderes und unabhängiges Objekt als df zu sein. Ich weiß, dass beide Objekte im Speicher sind, aber das ist in Ordnung für dieses Beispiel. – Sevyns