นุ่น: สร้างตารางความถี่ตามหลายคอลัมน์
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อสร้างตารางความถี่ในรูปแบบแพนด้าโดยอิงจากหลายคอลัมน์:
df. value_counts ([' column1 ',' column2 '])
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: สร้างตารางความถี่ใน Pandas โดยอิงจากหลายคอลัมน์
สมมติว่าเรามี DataFrame แพนด้าต่อไปนี้ซึ่งมีข้อมูลเกี่ยวกับชื่อทีม ตำแหน่ง และคะแนนที่ผู้เล่นบาสเก็ตบอลหลายคนทำได้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'G', 'F', 'G', 'G', 'F', 'F'], ' points ': [24, 33, 20, 15, 16, 16, 29, 25]}) #view DataFrame print (df) team position points 0 AG 24 1 AG 33 2 AG 20 3 AF15 4 BG 16 5 BG 16 6 BF 29 7 BF 25
เราสามารถใช้ฟังก์ชัน value_counts() เพื่อสร้างตารางความถี่ที่แสดงการเกิดขึ้นของค่าผสมแต่ละค่าในคอลัมน์ ทีม และ ตำแหน่ง :
#count frequency of values in team and position columns
df. value_counts ([' team ',' position '])
team position
GA 3
BF 2
G2
AF1
dtype: int64
จากผลลัพธ์เราจะเห็นได้ว่า:
- มี 3 นัดคือทีม A และตำแหน่ง G
- มี 2 ครั้งคือทีม B และตำแหน่ง F
- มี 2 ครั้งคือทีม B และตำแหน่ง G
- มีทีม A และตำแหน่ง F เกิดขึ้น 1 ครั้ง
โปรดทราบว่าเราสามารถใช้ reset_index() เพื่อส่งคืน DataFrame แทน:
#count frequency of values in team and position columns and return DataFrame
df. value_counts ([' team ',' position ']). reset_index ()
team position 0
0 A G 3
1 B F 2
2 B G 2
3 A F 1
เราสามารถใช้ฟังก์ชัน rename() เพื่อเปลี่ยนชื่อคอลัมน์ที่มีการนับ:
#get frequency of values in team and position column and rename count column df. value_counts ([' team ',' position ']). reset_index (). rename (columns={0:' count '}) team position count 0 A G 3 1 B F 2 2 B G 2 3 A F 1
ผลลัพธ์ที่ได้คือ DataFrame ที่มีความถี่ของค่าผสมที่ไม่ซ้ำกันแต่ละค่าในคอลัมน์ ทีม และ ตำแหน่ง
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:
Pandas: วิธีใช้ GroupBy และการนับค่า
Pandas: วิธีใช้ GroupBy พร้อมจำนวนถังขยะ
Pandas: วิธีนับค่าในคอลัมน์ที่มีเงื่อนไข