[Notes] — Python Pandas Learning

RootFy22
Artisan Brain Academy
1 min readFeb 20, 2020

--

สวัสดีครับเพื่อนๆทุกคน วันนี้ผมจะขอบันทึกวิธีการแก้ปัญหา ที่ผมได้มีโอกาสนำ pandas ซึ่งเป็น ชุดคำสั่งไว้จัดการกับข้อมูลต่างๆ (Data pre-processing) โดยปัญหาของผมมีอยู่ว่า ผมมีไฟล์ csv จำนวน 2ไฟล์ โดยเป็นการเก็บข้อมูลจำนวนรายการจอง ใน 2 วัน สมมติเป็น 13.csv, 14.csv แต่ละไฟล์จะมีข้อมูลรายการจองที่อยู๋ประมาณ 5xxx แถว ซึ่งมีรูปร่างหน้าตา ดังนี้

13.csv

column1,column2
inv001,20000
inv002,30000
inv003,5000

14.csv

column1,column2
inv001,20000
inv002,30000
inv002,30000
inv003,5000
inv003,5000

ผมต้องการอยากทราบว่าทำไมยอดของวันที่ 14 ถึงได้มากกว่าวันที่ 13 ทั้งที่จำนวนรายการที่เกิดขึ้นจริงนั้นไม่ต่างกันเลย ซึ่งถ้าให้คนตรวจสอบด้วยมือนั้นน่าจะใช้เวลาพอสมควรอยู่ ผมเลยอาสาทำให้โดยลองเอาวิชาพื้นฐานที่พอรู้มาจัดการนั้นคือ python

โดยครั้งแรกผมได้ทำการตรวจสอบว่าที่จริงแล้ว มีรายการขายไหนบ้างที่ไม่ได้เกิดขึ้นในวันที่ 13 และ 14 ด้วยคำสั่ง

import pandas as pd
csv_13 = pd.read_csv('13.csv')
csv_14 = pd.read_csv('14.csv')
print('size of 13.csv', csv_13.shape) # 2 cols, 3 rows ข้อมูลในไฟล์csv
print('size of 14.csv', csv_14.shape) # 2 cols, 5 rows

ผมเลยคิดว่าต้องมีข้อมูลที่แตกต่างกันอยู่แน่นอนเลยใช้คำสั่งดูความแตกต่าง

diff_13_14 = csv_14[~csv_14.column1.isin(csv_13.column1))]
# ค้นหาว่ามีข้อมูลใน column1 ของไฟล์ csv_14 ที่ไม่มีใน csv_13 จำนวนเท่าไหร่
print(diff_13_cs)

ปรากฏว่าไม่พบข้อมูลที่แตกต่างเลย!!!!
เนื่องจากข้อมูลที่เก็บนั้นมีเป็นข้อมูลซ้ำ ผมเลยลองใหม่ที่จะหาว่ามีข้อมูลใน column1 ซ้ำกันบ้างไหม ด้วยคำสั่งนี้

duplicate_14 = csv_14[csv_14.duplicated()]
# ค้นหาว่ามีข้อมูลแถวซ้ำกันบ้างไหม

ปรากฏว่าผมเจอว่ามีข้อมูลซ้ำกันอยู่ 2 แถว เย้เย้ พบปัญหาแล้ว
จากนั้นก็แก้ปัญหาตามที่ผู้ใช้แจ้งมาว่าทำไมถึงข้อมูลซ้ำซ้อนกัน ผมใช้เวลาในการเขียน python และรันไม่นาน เพราะว่าข้อดีคือมันสามารถรันผ่านคอมมานด์ไลน์ได้เลย ทำให้สะดวกสำหรับคนที่ติดตั้งตัว compile ไว้แล้วครับ

หวังว่าพอจะเป็นประโยชน์กับใครหลายๆคนนะครับ
ขอบคุณครับ แล้วพบกันใหม่
แหล่งอางอิง
- http://jonathansoma.com/lede/foundations/classes/pandas%20columns%20and%20functions/fixing-column-names-in-pandas/
- https://blog.softhints.com/python-pandas-compare-csv-files-column/
- https://stackoverflow.com/questions/41286569/get-total-of-pandas-column
Happy Coding!!!

--

--