Pandas 03 : Basic Operations
Explore data
ถึงตอนนี้แล้วเราได้ทดลองใช้งาน head() และ tail() และ info() ไปแล้วนะครับ
ต่อไปเรามาลองใช้ function เพื่อหาขนาดของ DataFrame กันครับ นั่นคือ len() และ shape() ครับ
shape() จะบอกเราว่า DataFrame มีกี่ Row และ Column
ส่วน len() นั้นจะบอกว่ามีทั้งหมดกี่ Row ครับ
Accessing data
การเข้าถึงข้อมูลหรือ value นั้นสามารถทำได้ 2 วิธีครับ
- ใช้ label หรือชื่อ column
- ใช้ index ของ column ในการเรียกข้อมูล ตามปกติ index จะเริ่มต้นที่ 0 และเพิ่มขึ้นทีละ 1 ไปเรื่อยๆ จนครบทุก column
การเรียกข้อมูลโดยใช้ชื่อ column ทำได้ตามตัวอย่างครับ
df['Product']
ซึ่งจะเป็นการแสดงข้อมูลทั้งหมดใน column Product นั่นเองครับ
หรือถ้าหากเราต้องการข้อมูลบางส่วน เราก็สามารถใช้ index ในการเลือกข้อมูลมาแสดงผลได้ครับ เช่น
df['Product'][0]
จะแสดง value แรกของ Product ขึ้นมา สังเกตนะครับ ว่า Python จะเริ่ม index ที่ 0 เสมอ
แล้วถ้าหากเราต้องการเลือกข้อมูลมากกว่า 1 ค่า เราจะใช้คำสั่งอย่างไรได้บ้าง ก็ใช้เป็น
df['Product'][0:10]
จะแสดงข้อมูล 10 ตั้งแต่ index 0-10 ค่าครับ
ซึ่งการเรียกข้อมูลแบบนี้ เราจะได้เป็น Series นะครับ แต่ถ้าหากเราอยากได้ข้อมูลออกมาเป็น DataFrame เราจะต้องใช้ [[]] แบบนี้ครับ
df[['Product']]
และเราสามารถเลือกข้อมูลหลาย Column เราสามารถทำได้โดยใส่ชื่อ Column เข้าไปเพิ่มใน List ได้เลยครับ
df[['Product','Revenue']]
เมื่อข้อมูลอยู่ในรูปแบบ DataFrame ทำให้เราใช้ operation ของ Dataframe ได้
Filtering DataFrames
เราสามารถ Filter ข้อมูลใน DataFrame โดยใช้ Boolean Series ครับ ยกตัวอย่าง
จากนั้นเราก็นำ Boolean series ไปเรียกใน bracket แบบนี้ได้เลยครับ
df[df['Revenue'] > 1200000] # เลือกข้อมูลจาก DataFrame ที่มียอดขายมากกว่า 1,200,000
ถ้าเรามีเงื่อนไขเพิ่มเติมเข้ามา เราสามารถใส่เงื่อนไขเข้าไปเพิ่มได้ครับ
เช่น หากเราต้องการดูข้อมูลยอดขายที่มากกว่า 1,200,000 เฉพาะในปี 2014 ว่ามีสินค้าอะไรบ้าง
df[(df['Revenue'] > 1200000) & (df['Year'] == 2014)]
สังเกตว่าผมใช้เครื่องหมาย & เพื่อระบุว่าต้องเป็นจริงทั้งคู่ครับ
หรือถ้าหากเราอยากได้ยอดขายสินค้าที่มากกว่า 1,200,000 หรือขายได้มากกว่า 60,000 ชิ้น ให้ใช้เครื่องหมาย | แทนครับ ซึ่งเราสามารถเขียน code ได้แบบนี้ครับ
df[(df['Revenue'] > 1200000) | (df['Quantity'] > 60000)]
คราวนี้เรามาลองเลือกข้อมูลเฉพาะ Product, Revenue, Quantity ที่มียอดขาย ยอดขายสินค้าที่มากกว่า 1,200,000 หรือขายได้มากกว่า 60,000 ลองเขียน code ดูมั้ยครับ?
เฉลย
Practice
ถึงตอนนี้เราคงพอจะเข้าใจวิธีการเรียกดูข้อมูลใน DataFrame แล้ว ก่อนจบบทนี้เดี๋ยวผมขอให้ลองทำแบบฝึกข้างล่างดูนะครับ ทำเสร็จแล้วอยากให้ช่วยตรวจก็ส่ง Comment มาได้เลยครับผม เจอกันบทหน้านะครับ
- ให้สร้าง DataFrame แสดงข้อมูลสินค้าที่มี Revenue มากกว่า 1,500,000
- ให้สร้าง DataFrame แสดงข้อมูลสินค้าที่มี Quantity น้อยกว่า 2
- ให้สร้าง DataFrame แสดงข้อมูลสินค้าที่มี Gross margin มากกว่า 0.75 เฉพาะ Retailer country ประเทศ Italy