Nếu tôi có một pandas.core.series.Series
tên ts
của hoặc là 1 hoặc NaN của như thế này:Cumsum reset tại NaN
3382 NaN
3381 NaN
...
3369 NaN
3368 NaN
...
15 1
10 NaN
11 1
12 1
13 1
9 NaN
8 NaN
7 NaN
6 NaN
3 NaN
4 1
5 1
2 NaN
1 NaN
0 NaN
Tôi muốn tính toán cumsum của serie này, nhưng nó phải được thiết lập lại (thiết lập để zero) tại vị trí của các NaN như sau:
3382 0
3381 0
...
3369 0
3368 0
...
15 1
10 0
11 1
12 2
13 3
9 0
8 0
7 0
6 0
3 0
4 1
5 2
2 0
1 0
0 0
Lý tưởng nhất là tôi muốn có giải pháp vector!
tôi đã từng nhìn thấy một câu hỏi tương tự với Matlab: Matlab cumsum reset at NaN?
nhưng tôi không biết làm thế nào để dịch dòng này d = diff([0 c(n)]);
'ValueError: không thể chuyển đổi phao NaN để integer' cho 'ts.notnull.cumsum()' trên gấu trúc 0,12. Tôi không chắc tại sao điều này lại xảy ra với một chuỗi boolean .. – machow
Điều đó phải được sửa bởi ['9da899b'] (https://github.com/pydata/pandas/commit/9da899ba3d1099d7456adb32ea129547f152dee8) –
@Closed Đảm bảo bạn đã cập nhật và cho tôi biết nếu nó vẫn không hoạt động. –