เทพเอ็กเซล ช่วย "ปลุกเทพ Excel ในตัวคุณ"
0
  • No products in the cart.
Python

หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 – ประเภทข้อมูล (Data Types)

python for excel- data types

ในตอนที่แล้วเราได้เรียนรู้เรื่องของการแสดงผลด้วย print การใช้ตัวแปร การใส่ comment ไปแล้ว ซึ่งยังเป็นเรื่องที่พื้นฐานมากๆ คราวนี้เราก็ยังคงอยู่ที่เรื่องพื้นฐานที่สำคัญอีกเรื่องคือ ประเภทของข้อมูลใน Python นั่นเอง

ประเภทข้อมูลใน Python จริงๆ นั้นมีหลายแบบมากๆ ดูในนี้ได้ แต่ผมจะขอพูดถึงตัวที่ผมคิดว่าสำคัญและใช้บ่อยๆ เท่านั้นก่อนนะครับ

ประเภทข้อมูลพื้นฐาน (เทียบกับใน Excel)

มีลักษณะเป็นค่าเดี่ยวๆ ตัวเดียว

  • ตัวเลข : int (จำนวนเต็ม), float (ทศนิยม)
  • ข้อความ : str (ซึ่งต้องใส่ในเครื่องหมายคำพูด ตามที่อธิบายไว้ในตอนแรก)
  • ตรรกะ : bool คือค่า True / False

เราสามารถตรวจสอบประเภทข้อมูลได้ด้วย ฟังก์ชัน type() ดังนี้

x=5 #เป็น int
y=5.0 #เป็น float เพราะมีทศนิยม แม้จะเป็น 0 ก็ตาม
z="5" #เป็น str แม้หน้าตาจะเหมือนตัวเลขก็ตาม
print(type(x))
print(type(y))
print(type(z))
หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 1

เครื่องหมาย Operator พื้นฐาน

เครื่องหมายคำนวณทางคณิตศาสตร์

นั้นคล้าย Excel มากเช่น +, -, *, / นั้นเหมือนกับ Excel เลย อย่างไรก็ตามก็มีตัวที่ต่างกัน คือ

  • % คือ Modulus หาเศษเหลือจากการหาร (ใน Excel จะใช้ฟังก์ชัน MOD)
  • ** คือ ยกกำลัง (ใน Excel จะใช้ ^)

เครื่องหมายเปรียบเทียบ / ตัวตรรกะ

เวลาใช้จะให้ผลเป็น Boolean คือ True/False เช่นเดียวกับใน Excel เลย

  • ตัวที่เหมือน Excel คือ >, <, >=, <=
  • ตัวที่ต่างจาก Excel มีดังนี้
    • == คือ การเทียบว่าเท่ากันหรือไม่ (ใน Excel ใช้ = ตัวเดียว)
    • != คือ เครื่องหมายไม่เท่ากับ (ใน Excel ใช้ <>)
    • in สามารถเช็คได้ว่าอยู่ในกลุ่มที่สนใจหรือไม่ (ใน excel อาจต้องใช้ MATCH ช่วย)
    • ตัวตรรกะ and, or, not ใช้เป็นตัวเชื่อมตรงกลาง (ใน Excel ใช้เป็นฟังก์ชัน) เช่น
      • myVar1>10 and myVar2<=30 (ใน excel ใช้ว่า =AND(myVar1>10, myVar2<=30)

เครื่องหมายเชื่อมข้อความ

ใน Excel จะใช้เครื่องหมาย & ในการเชื่อมข้อความ แต่ใน Python จะใช้เครื่องหมาย + ได้เลยครับ เช่น

title="นาย"
first="ศิระ"
last="เอกบุตร"
print(title+first) #ได้ นายศิระ
print(title+first+" "+last) #ได้ นายศิระ เอกบุตร
หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 2

ถ้าข้อมูลเป็นคนละประเภท Python จะงงทันที เช่น แบบนี้จะ Error เพราะ var1 เป็นตัวเลข ส่วน var2 เป็น text คำว่า 3

ตกลงว่าจะให้บวกกัน หรือ จะให้เชื่อมข้อความกันแน่???

var1=5
var2="3"
print(var1+var2)
หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 3

การแปลงประเภทข้อมูล (Casting)

เดิมที่เราเอาตัวเลขกับข้อความบวกกันไม่ได้ เราต้องแปลงให้เหมือนกันก่อน โดยใช้ฟังก์ชันที่ชื่อเดียวกับประเภทข้อมูลที่ต้องการ เช่น

var1=5
var2="3"
var2num=int(var2) #แปลงให้เป็นเลขจำนวนเต็ม
var1str=str(var1) #แปลงให้เป็นข้อความ
print(var1+var2num)
print(var1str+var2)
หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 4

ประเภทข้อมูลที่เป็นโครงสร้าง

มีลักษณะที่สามารถเก็บข้อมูลพื้นฐานหลายๆ ตัวเป็นชุดข้อมูลได้ ซึ่ง Concept นี้ จะคล้ายๆ Array ใน Excel

ใน Excel ถ้าเราอ้างอิงข้อมูลเป็นช่วงเมื่อไหร่จะได้ข้อมูลแบบ Array ทันที (เช็คได้โดยการ Highlight สูตรแล้วกด F9) ซึ่งจะแสดงเป็นข้อมูลในเครื่องหมายปีกกา คั่นด้วย Comma (ขึ้นคอลัมน์ใหม่) กับ Semicolon (ขึ้นแถวใหม่) เช่น

หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 5

แต่ใน Python นั้นมีข้อมูลเชิงโครงสร้างที่หลากหลายแบบมากๆ และมีลูกเล่นในการจัดการข้อมูลที่ง่ายกว่า Array ของ Excel พอสมควรซึ่งจะคล้ายกับข้อมูลเชิงโครงสร้างของ ภาษา M ใน Power Query มากกว่า (เช่น List, Record, Table)

ข้อมูลเชิงโครงสร้างใน Python ที่สำคัญๆ มีดังนี้

list

  • เก็บข้อมูลหลายๆ ตัวอยู่ในวงเล็บเหลี่ยม เก็บค่าซ้ำได้ เช่น
    • myList = [“Eren”, “Eren”, “Mikasa”, “Armin”, “Armin”]
    • คล้ายๆ กับ List ของ Power Query
  • ลำดับข้อมูลมีความสำคัญ อ้างอิงข้อมูลได้ด้วยเลข index เช่น
    • myList[0] คือ item ตัวแรกสุด ซึ่งคือ “Eren”
    • myList[-1] คือ item ตัวสุดท้าย ซึ่งคือ “Armin”
    • สามารถดึงข้อมูลมาหลายๆ ตัวเป็นช่วงที่เรียกว่า Slice ได้ ในรูปแบบ myList[ตั้งแต่index : แต่ไม่รวม index]
    • ถ้าตอน slice เว้นตัวเริ่มต้นไว้ จะได้ตั้งแต่ตัวแรก, ถ้าเว้นตัวจบ จะได้จนถึงตัวสุดท้าย
  • เปลี่ยนค่า item ต่างๆ หลังจากถูกสร้างไปแล้วได้ (Mutable) เช่น
    • myList[1]=”Attack Titan” #เปลี่ยนค่า item ที่ 2 (index1) เป็น Attack Titan
myList = ["Eren", "Eren", "Mikasa", "Armin", "Armin"]
print(myList[0]) #ได้ตัวแรก
print(myList[-1]) #ได้ตัวสุดท้าย
#เปลี่ยนค่า item ที่ 2 (index1) เป็น Attack Titan
myList[1]="Attack Titan" 
print(myList)

#ได้ตั้งแต่ index 0 แต่ไม่รวมตัว index3 ซึ่งคือ ตัวแรกถึงตัวที่ 3 ได้ ['Eren', 'Attack Titan', 'Mikasa']
print(myList[0:3]) 

#ได้ตั้งแต่ index 1 แต่ไม่รวมตัว index3 ซึ่งคือ ตัวที่ 2 ถึงตัวที่ 3 ได้ ['Attack Titan', 'Mikasa']
print(myList[1:3]) 

#ได้ตั้งแต่ index 1 ถึง ตัวสุดท้าย ได้ ['Attack Titan', 'Mikasa', 'Armin', 'Armin']
print(myList[1:]) 

#ได้ตั้งแต่ตัวแรก แต่ไม่รวมตัว index2 ซึ่งคือ ตัวแรก ถึงตัวที่ 2 ได้ ['Eren', 'Attack Titan']
print(myList[:2]) 
หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 6

tuple

  • เก็บข้อมูลหลายๆ ตัวอยู่ในวงเล็บปกติ เก็บค่าซ้ำได้ เช่น
    • myTuple = (“Eren”, “Eren”, “Mikasa”, “Armin”, “Armin”)
  • ลำดับข้อมูลมีความสำคัญ อ้างอิงข้อมูลได้ด้วยเลข index (เช่นเดียวกับ List) เช่น
    • myTuple[0] คือ item ตัวแรกสุด ซึ่งคือ “Eren”
  • เปลี่ยนข้อมูลภายหลังจากสร้างไปแล้วไม่ได้ (unchangeable/immutable) เช่น
    • myTuple[1]=”Attack Titan” แบบนี้จะ Error ทันที
myTuple = ("Eren", "Eren", "Mikasa", "Armin", "Armin")
print(myTuple[0]) #ได้ตัวแรก
print(myTuple[-1]) #ได้ตัวสุดท้าย
myTuple[1]="Attack Titan" #เปลี่ยนค่า item ที่ 2 (index1) เป็น Attack Titan
print(myTuple) #error ไปตั้งแต่ก่อนหน้าแล้ว
print(myTuple[0:3]) #error ไปตั้งแต่ก่อนหน้าแล้ว
print(myTuple[1:3]) #error ไปตั้งแต่ก่อนหน้าแล้ว
หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 7

dict

  • เป็นการเก็บข้อมูลเป็นคู่ Key : Value อยู่ในวงเล็บปีกกา เช่น
    • myDict = {“name” : “Sira”, “age” : 37}
    • ถ้าใส่ Key ซ้ำกันหลายรอบจะได้อันสุดท้าย
    • คล้ายๆ กับสิ่งที่เรียกว่า Record ของ Power Query ซึ่งคล้ายการเก็บข้อมูลแต่ละบรรทัดของตารางเอาไว้ แล้วบอกว่าแต่ละ Field (Column) มีค่าเป็นอะไร
  • อ้างอิงข้อมูลได้โดยใช้ Key มาช่วย เช่น
    • myDict[“name”] จะได้คำว่า “Sira”
    • myDict[“age”] จะได้เลข 37
myDict = {"name" : "Eren", "age" : 37, "name" : "Sira"} #ถ้าใส่ Key ซ้ำกันจะได้อันสุดท้าย
print(myDict)
print(myDict["name"]) # ได้สิ่งที่คู่กับ Key ที่เป็นคำว่า name
myDict["name"]="ThepExcel" #เปลี่ยนค่าใน item ได้
print(myDict)
หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 8

set

  • ใส่รายการข้อมูลอยู่ในวงเล็บปีกกา และเก็บค่าซ้ำไม่ได้ เช่น
    • mySet={“Eren”, “Eren”, “Mikasa”, “Armin”, “Armin”}
    • สุดท้ายจะเหลือแค่ {“Eren”, “Mikasa”, “Armin”} อยู่ดี (ตัดตัวซ้ำออกให้)
  • ลำดับข้อมูลไม่มีความสำคัญ ทำให้ไม่สามารถอ้างอิงข้อมูลด้วย index หรือ key ได้
    • ทำได้แค่วน Loop ใน set หรือเช็คว่ามีข้อมูลที่ต้องการหรือไม่
mySet={"Eren", "Eren", "Mikasa", "Armin", "Armin"}
print(mySet) #เหลือเฉพาะตัวที่ไม่ซ้ำ
print("Armin" in mySet) #เช็คว่าใน set มีคำว่า Armin รึเปล่า
print("Levi" in mySet) #เช็คว่าใน set มีคำว่า Levi รึเปล่า
print(mySet[0]) #อ้างอิงด้วย index ไม่ได้
หัด Python สำหรับคนเป็น Excel : ตอนที่ 2 - ประเภทข้อมูล (Data Types) 9

จบตอนที่ 2

ในตอนต่อๆ ไปเราจะมาดูเรื่องของการวน Loop การเขียน if รวมถึงเจาะลึกข้อมูลประเภท List ซึ่งมีลูกเล่นเยอะมากๆ ในการทำงานจริง และมีความเกี่ยวข้องกับข้อมูลที่เป็นข้อความด้วยเช่นกัน รอติดตามได้เลย!

แชร์ความรู้ให้เพื่อนๆ ของคุณ
  • 680
  •  
  •  
  •  
  •  
  • 680
  •  
  •  
  •  
  •  
Sira Ekabut
the authorSira Ekabut
• Microsoft Office Specialist : Excel ระดับ Expert • ก่อตั้งเว็บไซต์และ แฟนเพจเทพเอ็กเซล คนติดตาม 8 หมื่นคน+, คลิปวีดีโอ 1 ล้าน Views + • หนังสือ Best Seller คอมพิวเตอร์ : Excel Level Up! , จอมเวท เทพ Excel , Excel Power Up!วิทยากรใน SkillLane.com คอร์สออนไลน์ชั้นนำ / อบรม Excel ให้บริษัทชั้นนำ

Leave a Reply