Ich versuche, eine Spalte aus einem DataFrame zu generieren, um meine Gruppierung zu basieren. Ich weiß, dass jede NaN-Säule unter einer Nicht-NaN-Säule zu derselben Gruppe gehört. Also habe ich diese Schleife geschrieben (siehe unten), aber ich habe mich gefragt, ob es eine pandas/pythonische Art gibt, sie mit apply oder einer Verständnisliste zu schreiben.Hinzufügen einer Spalte, die für jeden Index inkrementiert, der ein Kriterium in einer anderen Spalte erfüllt
import pandas
>>> DF = pandas.DataFrame([134, None, None, None, 129374, None, None, 12, None],
columns=['Val'])
>>> a = [0]
>>> for i in DF['Val']:
if i > 1:
a.append(a[-1] + 1)
else:
a.append(a[-1])
>>> a.pop(0) # remove 1st 0 which does not correspond to any rows
>>> DF['Group'] = a
>>> DF
Val Group
0 134.0 1
1 NaN 1
2 NaN 1
3 NaN 1
4 129374.0 2
5 NaN 2
6 NaN 2
7 12.0 3
8 NaN 3