Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีดึงชื่อค่าและจำนวนจาก value_counts() ใน Python Pandas

แนวคิดพื้นฐาน

เมธอด value_counts() ใน Pandas ใช้สำหรับนับจำนวนครั้งที่ค่าแต่ละค่าปรากฏในคอลัมน์ (Series) ผลลัพธ์ที่ได้คือ Series ที่มีค่าเป็นดัชนี (index) และจำนวนเป็นค่า (values) เรียงลำดับจากมากไปน้อย

ตัวอย่างโค้ดเต็ม

import pandas as pd

# สร้าง DataFrame ตัวอย่าง
dataFrame = pd.DataFrame({
    "Car": ['BMW', 'Mustang', 'Tesla', 'Mustang', 'Mercedes', 'Tesla', 'Audi'],
    "Cubic Capacity": [2000, 1800, 1500, 2500, 2200, 3000, 2000],
    "Reg Price": [7000, 1500, 5000, 8000, 9000, 6000, 1500],
    "Units Sold": [200, 120, 150, 120, 210, 250, 220]
})

print("DataFrame:\n", dataFrame)

# ดึงชื่อค่าและจำนวนจากคอลัมน์ Car
res = dataFrame['Car'].value_counts()
print("\nชื่อค่าและจำนวนจากคอลัมน์ Car:\n", res)

# ดึงชื่อค่าและจำนวนจากคอลัมน์ Units Sold
res = dataFrame['Units Sold'].value_counts()
print("\nชื่อค่าและจำนวนจากคอลัมน์ Units Sold:\n", res)

ผลลัพธ์

DataFrame:
      Car  Cubic Capacity  Reg Price  Units Sold
0     BMW            2000       7000         200
1  Mustang            1800       1500         120
2   Tesla            1500       5000         150
3  Mustang            2500       8000         120
4 Mercedes            2200       9000         210
5   Tesla            3000       6000         250
6    Audi            2000       1500         220

ชื่อค่าและจำนวนจากคอลัมน์ Car:
Mustang     2
Tesla       2
Audi        1
BMW         1
Mercedes    1
Name: Car, dtype: int64

ชื่อค่าและจำนวนจากคอลัมน์ Units Sold:
120    2
150    1
220    1
210    1
250    1
200    1
Name: Units Sold, dtype: int64

การเข้าถึงค่าแยกส่วน

หากต้องการแยกชื่อค่า (index) และจำนวน (values) ออกมาเป็นลิสต์หรืออาร์เรย์ ให้ใช้:

values = res.index.tolist()   # รายการชื่อค่า
counts = res.values.tolist()  # รายการจำนวน

หมายเหตุ

  • value_counts() ข้ามค่า NaN โดยอัตโนมัติ (ใช้ dropna=False เพื่อรวม NaN)
  • สามารถใช้ normalize=True เพื่อได้สัดส่วนแทนจำนวน
  • ทำงานได้กับคอลัมน์ประเภทข้อมูลทุกชนิด (ตัวเลข, สตริง, วันที่, ฯลฯ)