Pandas 03 : Basic Operations

Data Science, Machine Learning, Tutorial By มี.ค. 09, 2019 No Comments

Pandas operation

ในบทนี้เราจะมาเรียนเรื่องการใช้งาน basic operation กันครับ นั่นคือ Data Types, การ Explore data, การเรียกใช้ข้อมูล และการ Filter Data ภายใน DataFrame

Data Types

สิ่งแรกที่เราจะพูดถึงคือ Data Types ของ Pandas นะครับ

Data Type คือประเภทของข้อมูลครับ เราจะคุ้นเคยกันดีว่าการเก็บข้อมูลใน database นั้นจะต้องกำหนดประเภทของข้อมูลไว้ เพื่อให้เราสามารถ insert หรือ ทำการคำนวณได้ถูกต้อง

ใน Pandas นั้นจะมี Data type ทั้งหมดตามตารางข้างล่างนี้ครับ

alt text

Source: https://pbpython.com/pandas_dtypes.html

เมื่อเราทำการ Load ข้อมูลจาก dataset เขามาเก็บไว้ที่ DataFrame Pandas จะทำการระบุ DataType ให้โดยอัตโนมัติ และเราสามารถใช้คำสั่ง dtypes หรือ info() ตรวจสอบข้อมูลได้ครับ

alt text

alt text

Explore data

ถึงตอนนี้แล้วเราได้ทดลองใช้งาน head() และ tail() และ info() ไปแล้วนะครับ

alt text

ต่อไปเรามาลองใช้ function เพื่อหาขนาดของ DataFrame กันครับ นั่นคือ len() และ shape() ครับ

shape() จะบอกเราว่า DataFrame มีกี่ Row และ Column

ส่วน len() นั้นจะบอกว่ามีทั้งหมดกี่ Row ครับ

alt text

Accessing data

การเข้าถึงข้อมูลหรือ value นั้นสามารถทำได้ 2 วิธีครับ

  1. ใช้ label หรือชื่อ column
  2. ใช้ index ของ column ในการเรียกข้อมูล ตามปกติ index จะเริ่มต้นที่ 0 และเพิ่มขึ้นทีละ 1 ไปเรื่อยๆ จนครบทุก column

การเรียกข้อมูลโดยใช้ชื่อ column ทำได้ตามตัวอย่างครับ

df['Product']

ซึ่งจะเป็นการแสดงข้อมูลทั้งหมดใน column Product นั่นเองครับ

alt text

หรือถ้าหากเราต้องการข้อมูลบางส่วน เราก็สามารถใช้ index ในการเลือกข้อมูลมาแสดงผลได้ครับ เช่น

df['Product'][0]

จะแสดง value แรกของ Product ขึ้นมา สังเกตนะครับ ว่า Python จะเริ่ม index ที่ 0 เสมอ

alt text

แล้วถ้าหากเราต้องการเลือกข้อมูลมากกว่า 1 ค่า เราจะใช้คำสั่งอย่างไรได้บ้าง ก็ใช้เป็น

df['Product'][0:10]

จะแสดงข้อมูล 10 ตั้งแต่ index 0-10 ค่าครับ

ซึ่งการเรียกข้อมูลแบบนี้ เราจะได้เป็น Series นะครับ แต่ถ้าหากเราอยากได้ข้อมูลออกมาเป็น DataFrame เราจะต้องใช้ [[]] แบบนี้ครับ

df[['Product']]

alt text

และเราสามารถเลือกข้อมูลหลาย Column เราสามารถทำได้โดยใส่ชื่อ Column เข้าไปเพิ่มใน List ได้เลยครับ

df[['Product','Revenue']]

เมื่อข้อมูลอยู่ในรูปแบบ DataFrame ทำให้เราใช้ operation ของ Dataframe ได้

alt text

Filtering DataFrames

เราสามารถ Filter ข้อมูลใน DataFrame โดยใช้ Boolean Series ครับ ยกตัวอย่าง

alt text

จากนั้นเราก็นำ Boolean series ไปเรียกใน bracket แบบนี้ได้เลยครับ

df[df['Revenue'] > 1200000] # เลือกข้อมูลจาก DataFrame ที่มียอดขายมากกว่า 1,200,000

alt text

ถ้าเรามีเงื่อนไขเพิ่มเติมเข้ามา เราสามารถใส่เงื่อนไขเข้าไปเพิ่มได้ครับ

เช่น หากเราต้องการดูข้อมูลยอดขายที่มากกว่า 1,200,000 เฉพาะในปี 2014 ว่ามีสินค้าอะไรบ้าง

df[(df['Revenue'] > 1200000) & (df['Year'] == 2014)]

alt text

สังเกตว่าผมใช้เครื่องหมาย & เพื่อระบุว่าต้องเป็นจริงทั้งคู่ครับ

หรือถ้าหากเราอยากได้ยอดขายสินค้าที่มากกว่า 1,200,000 หรือขายได้มากกว่า 60,000 ชิ้น ให้ใช้เครื่องหมาย | แทนครับ ซึ่งเราสามารถเขียน code ได้แบบนี้ครับ

df[(df['Revenue'] > 1200000) | (df['Quantity'] > 60000)]

alt text

คราวนี้เรามาลองเลือกข้อมูลเฉพาะ Product, Revenue, Quantity ที่มียอดขาย ยอดขายสินค้าที่มากกว่า 1,200,000 หรือขายได้มากกว่า 60,000 ลองเขียน code ดูมั้ยครับ?

เฉลย

alt text

Practice

ถึงตอนนี้เราคงพอจะเข้าใจวิธีการเรียกดูข้อมูลใน DataFrame แล้ว ก่อนจบบทนี้เดี๋ยวผมขอให้ลองทำแบบฝึกข้างล่างดูนะครับ ทำเสร็จแล้วอยากให้ช่วยตรวจก็ส่ง Comment มาได้เลยครับผม เจอกันบทหน้านะครับ

  1. ให้สร้าง DataFrame แสดงข้อมูลสินค้าที่มี Revenue มากกว่า 1,500,000
  2. ให้สร้าง DataFrame แสดงข้อมูลสินค้าที่มี Quantity น้อยกว่า 2
  3. ให้สร้าง DataFrame แสดงข้อมูลสินค้าที่มี Gross margin มากกว่า 0.75 เฉพาะ Retailer country ประเทศ Italy

Author

Data Engineer, Data Strategist, Data Analyst, Data Scientist

No Comments

Leave a comment

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *