我有一個資料框:
id value
0 a w
1 a l
2 a l
3 a w
4 a w
5 a w
6 a l
當我這樣做df.groupby("id").cumcount()時回傳:
0 0
1 1
2 2
3 3
4 4
5 5
6 6
我只想計算列值中等于 w 的那些,并且它必須是資料框形式:
0 0
3 0
4 1
5 2
如何使用 cumcount 函式做到這一點?
uj5u.com熱心網友回復:
用:
res = df.groupby((df["value"] != df["value"].shift()).cumsum()).cumcount()
res = res[df["value"].eq("w")]
print(res)
輸出
0 0
3 0
4 1
5 2
dtype: int64
作為備選:
s = (df["value"] != df["value"].shift()).cumsum()
res = s.groupby(s).cumcount()
res = res[df["value"].eq("w")]
print(res)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358039.html
上一篇:關于函式內tbl_uvregression函式中Y引數的問題
下一篇:按索引映射兩個陣列
