Diesen Datenrahmen haben:
%Vor% Ich möchte die Reihe darin durch eine neue ersetzen, die einfach die alte ist, aber auf eine Tagesperiode neu abgetastet wurde (d. h. x.resample('D').sum().dropna()
).
Wenn ich es versuche:
%Vor%Das scheint gut zu funktionieren:
Allerdings bekomme ich eine Warnung:
%Vor%Die Frage ist, wie soll ich das stattdessen tun?
Dinge, die ich versucht habe, aber nicht funktioniert (Resampling oder nicht, die Zuweisung löst eine Ausnahme aus):
%Vor%Ein bisschen mehr Informationen über die Daten (falls relevant):
Verwenden von Python 3.5.1 und Pandas 0.18.1.
Das sollte funktionieren:
%Vor% Pandas beschweren sich über verkettete Indexierung, aber wenn Sie es nicht so machen, sehen Sie sich mit Problemen konfrontiert, wenn Sie einer Zelle ganze Serien zuweisen. Mit iat
können Sie so etwas erzwingen . Ich denke nicht, dass dies vorzuziehen wäre, aber es scheint eine funktionierende Lösung zu sein.
Setzen Sie einfach df.is_copy = False
vor der Zuweisung eines neuen Wertes.
Es sieht so aus, als sollten Sie Ihre Daten neu strukturieren, um Pandas-Funktionen wie MultiIndexing
zu nutzen. und DateTimeIndex
. Dies ermöglicht es Ihnen, weiterhin auf einen Index in der üblichen Weise zu arbeiten , während Sie dazu in der Lage sind Wählen Sie mehrere Spalten in den hierarchischen Daten aus ( a
, b
und bar
).
Mit den Daten in diesem Format wird das Resampling sehr einfach.
%Vor% %Vor% Wenn die Daten eine variable Länge Series
mit jeweils unterschiedlichen index
und nicht-numerischen Kategorien haben, ist das in Ordnung. Lassen Sie uns ein Beispiel geben:
Das einzige Problem ist das nach dem Resampling. Sie werden how='all'
beim Löschen verwenden na
Zeilen wie folgt: