ฉันมีข้อมูลของฉันอยู่ในกรอบข้อมูลแพนด้าดังนี้:
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']})
ดังนั้นข้อมูลของฉันมีลักษณะเช่นนี้
----------------------------
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
-----------------------------
ฉันต้องการแปลงเป็นกรอบข้อมูลอื่น ผลลัพธ์ที่คาดหวังสามารถแสดงในสคริปต์ python ต่อไปนี้:
output = pd.DataFrame({'A':['no','no','yes','yes'],'B':['no','yes','no','yes'],'count':[1,2,4,3]})
ผลลัพธ์ที่คาดหวังของฉันจะเป็นแบบนี้
--------------------------------------------
index A B count
--------------------------------------------
0 no no 1
1 no yes 2
2 yes no 4
3 yes yes 3
--------------------------------------------
จริงๆแล้วฉันสามารถค้นหาชุดค่าผสมทั้งหมดและนับได้โดยใช้คำสั่งต่อไปนี้: mytable = df1.groupby(['A','B']).size()
อย่างไรก็ตามปรากฎว่าชุดค่าผสมดังกล่าวอยู่ในคอลัมน์เดียว ฉันต้องการแยกแต่ละค่าในการรวมกันเป็นคอลัมน์อื่นและเพิ่มอีกหนึ่งคอลัมน์สำหรับผลลัพธ์ของการนับ เป็นไปได้หรือไม่? ฉันขอคำแนะนำได้ไหม ขอบคุณล่วงหน้า.
set_index()
. พยายามใช้groupby()
เพื่อจัดกลุ่มแถวเข้าด้วยกันโดยมีคู่คอลัมน์ทั่วไป เยี่ยมมากขอบคุณ!