ใน DataFrame เราสามารถเลือกดูข้อมูลของคอลัมน์ใดคอลัมน์หนึ่งได้โดยการใช้ index ควบคู่ไปกับการใช้ label

ขั้นแรกต้องมี DataFrame ที่เราจะเข้าดูข้อมูลก่อน

คำอธิบาย

  • เนื่องจาก Python ไม่รองรับ array มีแต่ list เท่านั้น ในบรรทัดที่ 10 และ 11 เราใช้ library NumPy สร้าง array ขึ้นมา ทำให้เราได้ array ทั้งหมด 2 arrays
  • บรรทัดที่ 14 และ 15 เราเปลี่ยน arrays นั้นให้กลายเป็น Series โดยใช้ Pandas Series (อย่าลืมว่า Python เป็น case-sensitive language หมายความว่า เราต้องระวังตัวพิมพ์ใหญ่พิมพ์เล็กให้ดี จะใช้สลับกันไม่ได้)
  • บรรทัดที่ 18 เราสร้าง Dictionary โดยบรรจุด้วย Series ที่เราต้องการเอามาทำ DataFrame จำไว้ว่าตัว Key ใน Dictionary จะเป็นชื่อคอลัมน์เมื่อเราเอามันมาทำเป็นตาราง ส่วนค่า หรือ value ของ key จะเป็น Series ที่เรานำมาเป็นข้อมูลของคอลัมน์นั้นๆ
  • บรรทัดที่ 20 เราส่ง Dictionary ที่เราสร้างเข้าไปใน Pandas DataFrame
  • บรรทัดที่ 23 พิมพ์ DataFrame

DataFrame.loc[]

method นี้จะช่วยให้เราดึงข้อมูลที่อยู่ใน DataFrame ออกมาได้ (ข้อมูลที่ได้เป็นการ return copy ของข้อมูล) เราสามารถระบุตำแหน่ง index ของข้อมูลในแถวที่ต้องการดู และระบุคอลัมน์ที่ต้องการเรียกออกมาดูได้ การระบุคอลัมน์จะต้องระบุโดยใช้ชื่อ key ใน Dictionary หากเราไม่ระบุชื่อ Key ของคอลัมน์ที่ต้องการดู มันจะดึงข้อมูลแถวที่ระบุของทุกคอลัมน์ออกมา

ตัวอย่าง

บรรทัดที่ 26 เราสร้างตัวแปรชื่อ acc1 และใช้ method DataFrame.loc [] เพื่อเรียกดูข้อมูลแถวที่ 0 และ 1 ในคอลัมน์ที่ชื่อ ‘Score’

จะได้ข้อมูลดังนี้

  • Name คือชื่อคอลัมน์ที่เราเรียกมันออกมา
  • 0 และ 1 คือตำแหน่ง index
  • 7 และ 9 คือข้อมูลแถวที่ 0 และ 1 ของคอลัมน์นี้

DataFrame.iloc[]

method นี้จะดึงข้อมูลใน DataFrame ออกมาได้เช่นกัน แต่เราจะเลือกคอลัมน์ไม่ได้ เลือกได้แต่แถวที่ต้องการโดยระบุตำแหน่ง index มันจะแสดงแถวนั้นของทุกคอลัมน์ให้เรา

หากเราเผลอไปใส่ชื่อคอลัมน์เราจะได้ ValueError เช่น

    raise ValueError(f"Can only index by location with a [{self._valid_types}]")
ValueError: Can only index by location with a [integer, integer slice (START point is INCLUDED, END point is EXCLUDED), listlike of integers, boolean array]

ตัวอย่าง

บรรทัดที่ 31 เราใช้ DataFrame.iloc[] ดึงข้อมูลแถวที่ 0 และ 1 ไม่ต้องระบุชื่อคอลัมน์ ไม่เช่นนั้นจะได้ ValueError

  • 0 และ 1 คือ ตำแหน่ง index
  • Student และ Score คือ คอลัมน์ หมายความว่าตารางนี้มี 2 คอลัมน์
  • ที่เหลือเป็นข้อมูลในแต่ละคอลัมน์ คือ Lily และ Anne อยู่คอลัมน์ Student ส่วน 7 และ 9 อยู่คอลัมน์ Score

ในตารางนี้ Lily ได้คะแนน 7 ในขณะที่ Anne ได้คะแนน 9 ตามลำดับ

เราสามารถใช้ method .iloc เรียกข้อมูลของคอลัมน์ที่ต้องการคอลัมน์เดียวได้ แต่ต้องระบุชื่อคอลัมน์ที่ต้องการอีกวิธีหนึ่ง ดังนี้

บรรทัดที่ 35 เราระบุตำแหน่งของแถวที่ต้องการเป็นตำแหน่งที่ 0 และ 2
จากนั้นใส่เครื่องหมายคอมม่าคั่น และระบุคอลัมน์ที่ต้องการโดยใช้ Syntax ดังต่อไปนี้

DataFrame.columns.get_loc('Key')

DataFrame คือชื่อ DataFrame ที่เราสร้าง Key คือชื่อคอลัมน์ที่เราต้องการ

จะได้ข้อมูลดังต่อไปนี้

หากต้องการมากกว่า 1 คอลัมน์ ให้เปลี่ยน Syntax หลังคอมม่า เป็นอันต่อไปนี้

DataFrame.columns.get_indexer(['Key1', 'Key2'])

ตัวอย่าง

บรรทัดที่ 39 เราระบุตำแหน่งแถวที่เราต้องการเป็นแถวที่ 0 และ 2 จากนั้นระบุคอลัมน์ที่เราต้องการเป็นคอลัมน์ชื่อ ‘Student’ และ ‘Score’

ข้อมูลที่ได้

  • 0 และ 2 เป็นตำแหน่งแถวที่เลือก
  • Lily และ Edmund เป็นข้อมูลแถวที่ 0 และ 2 ตามลำดับซึ่งอยู่ในคอลัมน์ Student
  • 7 และ 8 เป็นข้อมูลแถวที่ 0 และ 2 ตามลำดับซึ่งอยู่ในคอลัมน์ Score