Tôi có dữ liệu của mình trong khung dữ liệu gấu trúc như sau:
df1 = pd.DataFrame({'A':['yes','yes','yes','yes','no','no','yes','yes','yes','no'],
'B':['yes','no','no','no','yes','yes','no','yes','yes','no']})
Vì vậy, dữ liệu của tôi trông như thế này
----------------------------
index A B
0 yes yes
1 yes no
2 yes no
3 yes no
4 no yes
5 no yes
6 yes no
7 yes yes
8 yes yes
9 no no
-----------------------------
Tôi muốn chuyển đổi nó sang một khung dữ liệu khác. Đầu ra mong đợi có thể được hiển thị trong tập lệnh python sau:
output = pd.DataFrame({'A':['no','no','yes','yes'],'B':['no','yes','no','yes'],'count':[1,2,4,3]})
Vì vậy, kết quả mong đợi của tôi trông như thế này
--------------------------------------------
index A B count
--------------------------------------------
0 no no 1
1 no yes 2
2 yes no 4
3 yes yes 3
--------------------------------------------
Trên thực tế, tôi có thể đạt được để tìm tất cả các kết hợp và đếm chúng bằng cách sử dụng lệnh sau: mytable = df1.groupby(['A','B']).size()
Tuy nhiên, nó chỉ ra rằng các kết hợp như vậy nằm trong một cột duy nhất. Tôi muốn tách từng giá trị trong một tổ hợp thành các cột khác nhau và cũng thêm một cột nữa để có kết quả đếm. Có thể làm được điều đó không? Tôi có thể có gợi ý của bạn? Cảm ơn bạn trước.
set_index()
. Cố gắng sử dụnggroupby()
để nhóm các hàng lại với nhau với một cặp cột chung cụ thể. Tuyệt vời, cảm ơn bạn!