Pandas: Füllen NaNs mit nächsten nicht-NaN / # konsekutiven NaNs

8

Ich möchte eine Pandas-Serie nehmen und NaN mit dem Durchschnitt des nächsten numerischen Wertes füllen, wobei: average = next numerical value / (# consecutive NaNs + 1)

Hier ist mein Code bisher, ich kann einfach nicht herausfinden, wie man die filler -Spalte unter NaN s (und auch den nächsten numerischen Wert) in num :

teilt %Vor%

Aktuelle Ausgabe:

%Vor%

Gewünschte Ausgabe:

%Vor%     
pshep123 19.04.2017, 23:34
quelle

1 Antwort

11
___ tag123pandas ___ Pandas ist eine Python-Bibliothek für die Manipulation und Analyse von Panel-Daten, z. multidimensionale Zeitreihen- und Querschnittsdatensätze, die häufig in Statistiken, experimentellen wissenschaftlichen Ergebnissen, Ökonometrie oder Finanzen zu finden sind. WICHTIG: Wenn Sie eine Frage mit diesem Tag stellen, markieren Sie bitte Ihre Fragen (in dieser Reihenfolge): [tag: python]; [tag: pandas]; [Etikett: Datenrahmen] / [Etikett: Serie]; (optional) [tag: groupby] / [tag: merge] / etc., abhängig von Ihren spezifischen Anforderungen. ___ tag123pandasgroupby ___ Wird zum Gruppieren von Variablen basierend auf einer bestimmten Bedingung verwendet. Und nur mit Relevanz für die 'Pandas' Bibliothek verwendet werden ___ qstntxt ___

Ich möchte eine Pandas-Serie nehmen und cumsum mit dem Durchschnitt des nächsten numerischen Wertes füllen, wobei: notnull

Hier ist mein Code bisher, ich kann einfach nicht herausfinden, wie man die groupby -Spalte unter transform s (und auch den nächsten numerischen Wert) in mean :

teilt %Vor%

Aktuelle Ausgabe:

%Vor%

Gewünschte Ausgabe:

%Vor%     
___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ antwort43507868 ___
  • Umgekehrte df.num.notnull().cumsum() von cumsum
  • Benutze das zu transform und assign zu loc
%Vor%

wie es funktioniert

  • df ist eine Standardmethode, um Gruppen zusammenhängender Nullen zu finden. Ich wollte jedoch, dass meine Gruppen mit dem nächsten numerischen Wert enden. Also habe ich die Serie umgekehrt und dann %code% 'd.
  • Ich möchte, dass mein Durchschnitt die Anzahl der Nullen enthält. Der einfachste Weg ist, mit Null zu füllen und einen normalen Mittelwert über die Gruppen zu machen, die ich gerade gemacht habe.
  • %code% , um über den vorhandenen Index zu senden
  • %code% neue Spalte. Trotz der Umkehrung der Serie wird sich der Index wie Magie neu ausrichten. Könnte %code% verwendet haben, aber das vorhandene %code% wird überschrieben. Ich werde OP entscheiden, zu überschreiben, wenn sie wollen.
___ qstnhdr ___ Pandas: Füllen NaNs mit nächsten nicht-NaN / # konsekutiven NaNs ___
piRSquared 19.04.2017, 23:46
quelle

Tags und Links