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

python - (Pandas) Xóa các nhóm trùng lặp được tạo bởi GroupBy

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 14:40:39 25 4
mua khóa gpt4 Nike

Tôi muốn tạo nhóm theo ID tùy chỉnh và sau đó loại bỏ các nhóm trùng lặp trong một số cột nhất định.

例如

|
|----|------|------|
| 1 |
| thanh 1 |
| 2 |
| thanh 2 |
| 2 | cá tuyết |
| 3 |
| thanh 3 |

đến

|
|----|------|------|
| 1 |
| thanh 1 |
| 2 |
| thanh 2 |
| 2 | cá tuyết |

Ở đây tôi nhóm theo id và sau đó tôi loại bỏ 3 vì nếu chúng ta chỉ xem xét cột A và B thì chúng giống nhau và nhóm 2 có một số hàng trùng lặp nhưng nó không phải là bản sao chính xác.

Tôi đã thử duyệt qua các nhóm nhưng rất chậm, mặc dù chỉ có khoảng 12.000 nhóm. Một điều phức tạp có thể xảy ra là các nhóm có quy mô khác nhau.

Đây là giải pháp mà tôi đang nghiên cứu nhưng phải mất một thời gian dài mà không có lần truy cập trùng lặp rõ ràng nào (mà tôi biết là tồn tại trong cơ sở dữ liệu)

grps = datafinal.groupby('Form_id') 
duy nhất_grps={}

đầu tiên=Đúng
đối với lab1, grp1 tính bằng grps:
nếu đầu tiên:
Unique_grps[lab1] = grp1
đầu tiên=Sai
Tiếp tục
đối với lab2, grp2 trong Unique_grps.copy().items():
if grp2[['A','B']].equals(grp1[['A','B']]):
in ("đánh")
Tiếp tục
Unique_grps[lab1] = grp1

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

sử dụngagg bộ đồnhân đôi

s=df.groupby('id').agg(tuple).sum(1).duplicate()
df.loc[df.id.isin(s[~s].index)]
Ra [779]:
idAB
0 1 foo 40
1 1 thanh 50
2 2 foo 40
3 2 thanh 50
4 2 cá tuyết 0

Thông tin thêm: Giờ đây, mọi thứ trong một nhóm đều ở trong một bộ đồ

df.groupby('id').agg(tuple).sum(1)
Ra [780]:
NHẬN DẠNG
1 (foo, bar, 40, 50)
2 (foo, bar, cod, 40, 50, 0)
3 (foo, bar, 40, 50)
dtype: đối tượng

gia hạn

từ natsort nhập natsorted
s=df.groupby('id').agg(tuple).sum(1).map(natsorted).map(tuple).duplicate()

Về python - (Pandas) loại bỏ các nhóm trùng lặp do GroupBy tạo, 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/53597194/

25 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