Im Folgenden ist ein Beispiel für einen Teil meines Datenrahmen:die Anzahl der gefüllten Zellen zwischen leeren Zellen in Pandas
col1 col2
items1 10
items1 5
items1 3
items1 2
items1 NaN
items1 NaN
items1 NaN
items1 4
items1 1
items1 1
items2 6
items2 4
items2 5
items2 NaN
items2 NaN
items2 2
items2 8
items2 7
items2 9
items2 NaN
...
ich für jeden eindeutigen Wert muß in Spalte col1
zähle Anzahl der nicht leerer Zellen zwischen leeren Zellen . Ich habe versucht, groupby()
zum Gruppieren von eindeutigen Werten in col1
und count()
verwenden, um Werte zu zählen, aber es zählen alle nicht leeren Werte für eindeutige Werte in col1
.
Hier ist mein Code:
df = pd.DataFrame({'col1':('items1','items1','items1','items1','items1','items1','items1','items1','items1','items1','items2','items2','items2','items2','items2','items2','items2','items2','items2','items2'),
'col2': (10, 5, 3, 2, np.nan, np.nan, np.nan, 4, 1, 1, 6, 4, 5, np.nan, np.nan, 2, 8, 7, 9, np.nan)})
df.groupby('col1')['col2'].count().reset_index()
Das Ergebnis sieht wie folgt aus:
col1 col2
0 items1 7
1 items2 7
Aber ich brauche folgendes zu erhalten:
col1 col2
0 items1 4
1 items1 3
2 items2 3
3 items2 4
Ich wäre dankbar für jede Rat!