cuốn sách gpt4 ai đã làm

python - Trích xuất các nhóm giá trị liên tiếp lớn hơn kích thước được chỉ định

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 02:09:07 26 4
mua khóa gpt4 Nike

Tôi đang cố gắng tìm xem có ít nhất X thao tác liên tiếp trong khung dữ liệu hay không (Tôi đã bao gồm cột "Filter_OK" để tính toán xem hàng có đủ điều kiện hay không) rồi trích xuất tập hợp các hàng đó.

      TRN TRN_DATE FILTER_OK  
0 5153 04/04/2017 11:40:00 Đúng
1 7542 04/04/2017 17:18:00 Đúng
2 875 04/04/2017 20:08:00 Đúng
3 74 05/04/2017 20:30:00 Sai
4 9652 04/06/2017 20:32:00 Đúng
5 965 07/04/2017 12:52:00 Đúng
6 752 04/10/2017 17:40:00 Đúng
7 9541 04/10/2017 19:29:00 Đúng
8 7452 04/11/2017 12:20:00 Đúng
9 9651 04/12/2017 13:57:00 Sai

Trong ví dụ này, nếu tôi đang tìm kiếm 4 thao tác.
Đầu ra mong muốn:

    TRN TRN_DATE FILTER_OK  
4 9652 04/06/2017 20:32:00 Đúng
5 965 07/04/2017 12:52:00 Đúng
6 752 04/10/2017 17:40:00 Đúng
7 9541 04/10/2017 19:29:00 Đúng
8 7452 04/11/2017 12:20:00 Đúng

Làm cách nào tôi có thể tập hợp lại các thao tác tôi cần?

câu trả lời hay nhất

Bạn có thể sử dụng tinh dịch Làm điều này sau đó theo nhómbiến đổi:

v = (~df.FILTER_OK).cumsum()
df[v.groupby(v).transform('size').ge(4) & df['FILTER_OK']]

TRN TRN_DATE FILTER_OK
4 9652 2017-06-04 20:32:00 Đúng
5 965 2017-07-04 12:52:00 Đúng
6 752 2017-10-04 17:40:00 Đúng
7 9541 2017-10-04 19:29:00 Đúng
8 7452 2017-11-04 12:20:00 Đúng

Chi tiết
Đầu tiên, sử dụng tinh dịch Tách các hàng thành các nhóm:

v = (~df.FILTER_OK).cumsum()
v

0 0
1 0
2 0
3 1
4 1
5 1
6 1
7 1
8 1
9 2
Tên: FILTER_OK, dtype: int64

Tiếp theo, tìm kích thước của mỗi nhóm, sau đó tìm ra nhóm nào có ít nhất X hàng (trong trường hợp của bạn là 4 hàng):

v.groupby(v).transform('size')

0 3
1 3
2 3
3 6
4 6
5 6
6 6
7 6
8 6
9 1
Tên: FILTER_OK, dtype: int64

v.groupby(v).transform('size').ge(4)

0 False
1 sai
2 False
3 True
4Đúng
5Đúng
6Đúng
7 đúng
8 đúng
9 sai
Tên: FILTER_OK, dtype: bool

Và mặt nạ này đi kèm với "FILTER_OK" để đảm bảo rằng chúng tôi chỉ nhận được các hàng hợp lệ đáp ứng tiêu chí.

v.groupby(v).transform('size').ge(4) & df['FILTER_OK']

0 False
1 sai
2 False
3 sai
4Đúng
5Đúng
6Đúng
7 đúng
8 đúng
9 sai
Tên: FILTER_OK, dtype: bool

Về python - trích xuất các nhóm giá trị liên tiếp lớn hơn kích thước quy định, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/54010386/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress