Python การใช้ pandas โหลดข้อมูลจากไฟล์ CSV

Python การใช้ pandas โหลดข้อมูลจากไฟล์ CSV

python ขึ้นชื่อว่าเป็นภาษาหนึ่งที่ใช้ทำการวิเคราะห์ข้อมูลได้ดี ซึ่งผมก็คิดว่ามันคงจะจริง โดยผมลองใช้ library  มีอยู่แล้วมาลองโหลดข้อมูลจาก CSV แล้วทำการวิเคราะห์ข้อมูลเรียกว่าทำได้ง่ายมากเลยไม่ซับซ้อนอะไรมากมาย แต่ขั้นแรกก่อนจะเริ่มทำการโหลดไฟล์ csv ไปวิเคราะห์ข้อมูลนั้นก็ต้องทำการติดตั้ง library ก่อนนั้นคือเจ้า Pandas กับ Numpy โดย Pandas จะเป็นตัวโหลดข้อมูลและเซฟข้อมูลลงไฟล์ โดยข้อมูลที่มันโหลดมาจะกลายเป็น Data Frame หรือกรอบข้อมูลประมาณข้อมูลที่เรียงกันเป็นตารางที่มีได้หลายมิตินั้นเอง ส่วนเจ้า Numpy นั้นจะเป็น Library ในการคำนวณทางคณิตศาสตร์ โดยผมใช้ OS Windows เลยทำลง package รวมที่ชื่อว่า Anaconda ซึ่งจะมี ide มาให้พร้อมเลยชื่อว่า spyder เอาละที่นี้มาถึงไฟล์ csv ที่จะโหลดข้อมูลกันบ้าง ผมได้เอาไฟล์ csv ราคาหุ้นจาก website siamchart โดยมีหน้าตาข้อมูลในไฟล์ดังรูปด้านล่างครับ

PYTHON การใช้ PANDAS โหลดข้อมูลจากไฟล์ CSV

ที่นี้ก็มาเริ่มเขียนโค้ดกันโดยมีโค้ดตามด้านล่างเลยครับ


import pandas as pd
import numpy as np

stock_file = 'D:/set-history_EOD_2017-07-04.csv'

df = pd.read_csv(stock_file,sep=',')

print(df.head(10))

stock_finder = 'CPALL'

stock = df.loc[df['<TICKER>'] == stock_finder]

print(stock)

avg_volumn = df['<VOL>'].mean()
max_close_price = df['<CLOSE>'].max()
print("average volumn stock ",avg_volumn)
print("max close price", max_close_price)

เมื่อลองรันดูจะได้ผลลัพธ์ดังรูป

PYTHON การใช้ PANDAS โหลดข้อมูลจากไฟล์ CSV

สังเกตโค้ด เราทำการ import pandas มาแล้ว as ให้ชื่อมันสั้นลงเป็น pd ในการโหลดไฟล์ csv เป็น dataframe นั้นใช้แค่คำสั่ง read_csv(ชื่อไฟล์, ตัวคั่นแต่ละ column ในไฟล์ csv) แค่นี้เอง ลองนึกดูถ้าเป็นในภาษาอื่นคงวนลูปกันเหนื่อยกว่าจะได้ข้อมูลใน csv ที่สามารถนำไปใช้งานได้ อีกอย่างเจ้า pandas นี้ยัง default ให้บรรทัดแรกของ csv เป็น header ให้อีกด้วย เมื่อลอง print ข้อมูล 10 แถวแรกโดยใช้คำสั่ง print(df.head(10)) ก็จะได้ผลลัพธ์ในรูปที่ตัวอักษร A จะเห็นว่าเจ้า dataframe นั้นมีคำสั่ง head, tail เพื่อเลือกดูข้อมูลหัวท้ายตามจำนวนที่เราต้องการเพื่อสะดวกในการดูข้อมูลในกรณีที่ dataframe มีข้อมูลจำนวนมากๆครับ

ต่อมา dataframe ที่ได้จาก csv นั้นยังสามารถใช้ filter เพื่อกรองเอาข้อมูล โดยในโค้ดจะค้นหา column <TICKER> มีค่าเท่ากับ CPALL โดยใช้คำสั่ง stock = df.loc[df[‘<TICKER>’] == stock_finder] ซึ่งก็จะได้ Dataframe อันใหม่ที่ชื่อว่า stock เมื่อลอง print ออกมาดูก็ได้ผลลัพธ์ตรงอักษร B

สุดท้ายจะเป็นการใช้คำสั่งพื้นฐานของ numpy โดยทำการหาค่า average ของ column <VOL> และหาค่ามากสุดของ column <CLOSE> โดยใช้คำสั่งแค่ datafram[‘ชื่อ column’].max,  datafram[‘ชื่อ column’].mean() นอกจากนี้ยังมีคำสั่งอื่นอีกมากมาย จากโค้ดก็มีคำสั่งคือ

avg_volumn = df[‘<VOL>’].mean()
max_close_price = df[‘<CLOSE>’].max()

ภายใน [‘ ‘] จะเป็นชื่อ column นะครับแต่เนื่องด้วยไฟล์ตัวอย่างชื่อ column ดันมีเครื่องหมาย <> มาด้วยถ้าไฟล์อื่นชื่อ column ให้สังเกตบรรทัดแรกได้เลยครับ ผมก็ขอจบบทความนี้ไว้แค่นี้ครับ สามารถ Download Soucecode ตาม link ด้านล่างเลยครับ

Download Sourcecode

Add a Comment

Your email address will not be published. Required fields are marked *