0Pricing
Learn AI with Python · บทเรียน

การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ

บันทึกเป็น CSV/JSON/Parquet เพิ่มข้อมูลอย่างปลอดภัย ลบข้อมูลซ้ำ และรวบรวมแบบเพิ่มทีละส่วน

การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

จากการตอบกลับดิบสู่ข้อมูลที่จัดเก็บแล้ว

หลังจากรวบรวมข้อมูลแล้ว คุณต้องจัดเก็บข้อมูลไว้เพื่อให้โหลดกลับมา แบ่งปัน และวิเคราะห์ได้ รูปแบบที่เหมาะสมและแนวปฏิบัติบางอย่างสร้างความแตกต่างได้มากทั้งในด้านความเร็วและการใช้พื้นที่ดิสก์

บทเรียนนี้ครอบคลุม CSV, Parquet การเพิ่มชุดข้อมูล และการกำจัดข้อมูลซ้ำ

JSON สู่ DataFrame

การตอบกลับจาก API มักเป็นรายการของพจนานุกรม pd.DataFrameจะแปลงข้อมูลเหล่านั้นเป็นตารางที่พร้อมจัดเก็บได้โดยตรง

import pandas as pd

records = [
    {"id": 1, "name": "A", "score": 9.5},
    {"id": 2, "name": "B", "score": 8.0},
]
df = pd.DataFrame(records)
print(df)

บันทึกเป็น CSV ด้วย df.to_csv

CSVเป็นรูปแบบที่ใช้ได้ทั่วไปและมนุษย์อ่านได้ บันทึกด้วย to_csv และส่งค่า index=False เพื่อไม่ให้เขียนดัชนีแถวเป็นคอลัมน์เกินมา

df.to_csv("data.csv", index=False)

# Reload
df2 = pd.read_csv("data.csv")

ข้อจำกัดของ CSV

CSV สะดวก แต่มีข้อเสียสำหรับงานด้านปัญญาประดิษฐ์:

  • ไม่มีชนิดข้อมูล — ทุกอย่างจัดเก็บเป็นข้อความ จึงต้องเดาชนิดข้อมูลใหม่เมื่อโหลด
  • ไฟล์มีขนาดใหญ่ และไม่มีการบีบอัดมาให้โดยค่าเริ่มต้น
  • อ่านได้ช้าสำหรับชุดข้อมูลขนาดใหญ่

สำหรับข้อมูลขนาดใหญ่หรือข้อมูลที่โหลดซ้ำบ่อย Parquet เหมาะกว่า

บันทึกเป็น Parquet ด้วย df.to_parquet

Parquetเป็นรูปแบบไบนารีแบบคอลัมน์ โดยคงชนิดข้อมูลไว้ บีบอัดได้ดี และโหลดได้เร็วกว่ า CSV มาก

จำเป็นต้องติดตั้งกลไก เช่น pyarrow

df.to_parquet("data.parquet", index=False)

df2 = pd.read_parquet("data.parquet")
print(df2.dtypes)   # types preserved, no re-guessing

CSV เทียบกับ Parquet — ควรใช้แบบใดเมื่อใด

หลักทั่วไปมีดังนี้:

  • CSV: ข้อมูลขนาดเล็ก การแบ่งปันกับเครื่องมือที่ไม่ใช่ไพธอน และการตรวจสอบอย่างรวดเร็ว
  • Parquet: ข้อมูลขนาดใหญ่ การโหลดซ้ำหลายครั้ง การคงชนิดข้อมูล และกระบวนการวิเคราะห์ข้อมูล

สำหรับงานรวบรวมข้อมูลที่ส่งต่อให้โมเดล ควรเลือกใช้ Parquet

เพิ่มชุดข้อมูลใหม่ด้วย pd.concat

การรวบรวมข้อมูลมักเกิดขึ้นเป็นชุด ๆ รวม DataFrame เดิมกับชุดข้อมูลใหม่ด้วย pd.concat

ignore_index=Trueจะกำหนดหมายเลขดัชนีใหม่ เพื่อให้ดัชนียังคงเป็นระเบียบ

new_batch = pd.DataFrame(new_records)
df = pd.concat([df, new_batch], ignore_index=True)
print(len(df))

เพิ่มข้อมูลโดยตรงลงในไฟล์ CSV

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

import os

header = not os.path.exists("data.csv")
new_batch.to_csv("data.csv", mode="a", header=header, index=False)

เหตุใดต้องกำจัดข้อมูลซ้ำ

การรวบรวมข้อมูลซ้ำ การแบ่งหน้าที่ทับซ้อนกัน หรือการลองใหม่ อาจสร้างแถวซ้ำได้ ข้อมูลซ้ำทำให้จำนวนรายการสูงเกินจริง และอาจรั่วไหลข้ามชุดแบ่งข้อมูลฝึก/ทดสอบ ซึ่งส่งผลเสียต่อการประเมินโมเดล

หลังกระจายชุดข้อมูลย่อยรวมกันแล้ว ให้กำจัดข้อมูลซ้ำเสมอ

drop_duplicates(subset=[id])

ใช้คีย์ไม่ซ้ำที่คงที่ (มักเป็น id) ร่วมกับ drop_duplicates(subset=...) วิธีนี้จะลบรายการที่ซ้ำกัน แม้ว่าช่องข้อมูลอื่นจะเปลี่ยนไปเล็กน้อย

keep="last" จะเก็บเวอร์ชันล่าสุดของแต่ละรหัส

df = df.drop_duplicates(subset=["id"], keep="last").reset_index(drop=True)
print(len(df), "unique rows")

ตัวช่วยบันทึกและผสานข้อมูล

นำทุกส่วนมารวมกัน: โหลดไฟล์พาร์เกต์ที่มีอยู่หากพบไฟล์นั้น concat ชุดข้อมูลใหม่ กำจัดข้อมูลซ้ำตามรหัส แล้วบันทึกกลับไป วิธีนี้เรียกใช้ซ้ำได้อย่างปลอดภัย

import os
import pandas as pd

def save_merge(new_df, path="data.parquet", key="id"):
    if os.path.exists(path):
        old = pd.read_parquet(path)
        new_df = pd.concat([old, new_df], ignore_index=True)
    new_df = new_df.drop_duplicates(subset=[key], keep="last")
    new_df.to_parquet(path, index=False)
    return new_df

ตรวจสอบด่วน: การเลือกรูปแบบข้อมูล

คุณต้องโหลดชุดข้อมูลขนาดใหญ่ซ้ำ ๆ เพื่อฝึกโมเดล และต้องรักษาชนิดข้อมูลไว้พร้อมการอ่านที่รวดเร็ว

ทบทวน: การจัดเก็บข้อมูลอย่างมีประสิทธิภาพ

ตอนนี้คุณสามารถเก็บข้อมูลที่รวบรวมมาได้อย่างเหมาะสมแล้ว:

  • pd.DataFrame สำหรับเปลี่ยนระเบียน JSON ให้เป็นตาราง
  • to_csv(index=False) สำหรับข้อความที่พกพาได้ และ to_parquet สำหรับการจัดเก็บข้อมูลแบบมีชนิดข้อมูลที่รวดเร็ว
  • pd.concat(ignore_index=True) หรือโหมด append ของ CSV สำหรับชุดข้อมูลย่อย
  • drop_duplicates(subset=["id"]) เพื่อให้แถวไม่ซ้ำกัน

ถัดไป: การทำงานกับส่วนติดต่อข้อมูลสาธารณะจริง

คำถามที่พบบ่อย

บทเรียน “การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ”

บันทึกเป็น CSV/JSON/Parquet เพิ่มข้อมูลอย่างปลอดภัย ลบข้อมูลซ้ำ และรวบรวมแบบเพิ่มทีละส่วน คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน REST API สำหรับรวบรวมข้อมูล
  2. การแบ่งหน้าและรวบรวมชุดข้อมูลขนาดใหญ่
  3. การจัดเก็บข้อมูลที่รวบรวมอย่างมีประสิทธิภาพ
  4. การใช้งาน API ข้อมูลสาธารณะ
← กลับไปที่ Learn AI with Python