อนุกรมเวลาใน Pandas
DatetimeIndex, resample(), rolling(), shift(), การสร้างช่วงวันที่ และการสุ่มตัวอย่างใหม่
อนุกรมเวลาใน Pandas เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
เวลาใน pandas
pandas รองรับวันเวลาอย่างครบถ้วน การแปลงสตริงเป็นการประทับเวลาและการจัดทำดัชนีตามเวลาช่วยให้ใช้การสุ่มตัวอย่างใหม่ หน้าต่างแบบเลื่อน และคุณลักษณะค่าหน่วงได้
การแยกวิเคราะห์ด้วย to_datetime
pd.to_datetime แปลงสตริงหรือตัวเลขให้เป็นออบเจ็กต์ Timestamp ที่ถูกต้อง โดยอนุมานรูปแบบที่พบบ่อยส่วนใหญ่ให้โดยอัตโนมัติ
import pandas as pd
d = pd.to_datetime(["2026-01-01", "2026-01-05", "2026-02-10"])
print(d)
print(d.dtype) # datetime64[ns]การสร้างวันที่ด้วย date_range
pd.date_range สร้างลำดับการประทับเวลาที่เว้นระยะเท่า ๆ กัน โค้ด freq ควบคุมช่วงก้าว: D คือวัน H คือชั่วโมง M คือสิ้นเดือน และอื่น ๆ
rng = pd.date_range("2026-01-01", periods=5, freq="D")
print(rng)
# 2026-01-01 ... 2026-01-05การสร้าง DatetimeIndex
การตั้งคอลัมน์วันเวลาให้เป็นดัชนีจะสร้าง DatetimeIndex ซึ่งช่วยให้แบ่งเลือกข้อมูลตามเวลาและใช้เครื่องมือ resample/rolling ได้
ts = pd.Series([10, 12, 9, 15, 11],
index=pd.date_range("2026-01-01", periods=5, freq="D"))
print(ts)การแบ่งเลือกด้วยสตริงบางส่วน
เมื่อมี DatetimeIndex คุณสามารถแบ่งเลือกข้อมูลด้วยวันที่บางส่วนได้ โดยสตริงที่ระบุปีหรือเดือนจะเลือกแถวทั้งหมดที่ตรงกัน
monthly = pd.Series(range(60),
index=pd.date_range("2026-01-01", periods=60, freq="D"))
print(monthly["2026-02"].head()) # all of Februaryการลดความถี่ด้วย resample
resample คือ groupby สำหรับเวลา ให้ลดตัวอย่างเป็นความถี่ที่หยาบขึ้นแล้วจึงรวมค่า เช่น เปลี่ยนข้อมูลรายวันให้เป็นผลรวมรายสัปดาห์
weekly = monthly.resample("W").sum()
print(weekly.head())การเพิ่มความถี่และการเติมค่า
การสุ่มตัวอย่างใหม่ให้มีความถี่ FINER จะสร้างช่องว่างขึ้นมา ใช้ร่วมกับ .ffill() เพื่อส่งต่อค่าล่าสุดไปข้างหน้า
hourly = ts.resample("12H").ffill()
print(hourly.head())หน้าต่างแบบเลื่อน
rolling(window) คำนวณค่าสถิติบนหน้าต่างที่เลื่อนไปตามข้อมูล ซึ่งเป็นพื้นฐานของค่าเฉลี่ยเคลื่อนที่ที่ช่วยลดความผันผวนของอนุกรมข้อมูล
roll = monthly.rolling(window=7).mean()
print(roll.head(10)) # first 6 are NaN (not enough history)รูปแบบของหน้าต่างแบบเลื่อน
การลดรูปแบบใด ๆ ก็ใช้กับหน้าต่างแบบเลื่อนได้ เช่น mean, sum, std, min, max ค่า std แบบเลื่อน 7 วันใช้วัดความผันผวนในช่วงที่ผ่านมา
vol = monthly.rolling(7).std()
print(vol.tail())การสร้างค่าหน่วงด้วย shift
shift(n) เลื่อนค่าไปข้างหน้าจำนวน n ช่วงเวลา ทำให้สร้างคุณลักษณะค่าหน่วงและคำนวณการเปลี่ยนแปลงระหว่างช่วงเวลาได้
df = pd.DataFrame({"sales": [100, 110, 105, 130]})
df["prev"] = df["sales"].shift(1)
df["pct_change"] = (df["sales"] - df["prev"]) / df["prev"]
print(df)การแยกส่วนประกอบของวันที่
ตัวเข้าถึง .dt เปิดให้ใช้ส่วนประกอบต่าง ๆ เช่น year, month, dayofweek ซึ่งมีประโยชน์ในฐานะคุณลักษณะของแบบจำลอง
s = pd.Series(pd.date_range("2026-01-01", periods=3, freq="D"))
print(s.dt.dayofweek) # 0=Monday
print(s.dt.month)ตรวจสอบอย่างรวดเร็ว
ทดสอบความรู้เกี่ยวกับอนุกรมเวลา
สรุปทบทวน
เครื่องมือสำหรับอนุกรมเวลา:
pd.to_datetimeสำหรับแยกวิเคราะห์ และpd.date_rangeสำหรับสร้างข้อมูลDatetimeIndexช่วยให้แบ่งเลือกข้อมูลด้วยสตริงบางส่วนได้resample(freq).agg()สำหรับการเพิ่มหรือลดความถี่ของตัวอย่างrolling(window)สำหรับค่าสถิติแบบเคลื่อนที่shift(n)สำหรับค่าหน่วง และ.dtสำหรับส่วนประกอบของวันที่
คำถามที่พบบ่อย
บทเรียน “อนุกรมเวลาใน Pandas” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “อนุกรมเวลาใน Pandas” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “อนุกรมเวลาใน Pandas”
DatetimeIndex, resample(), rolling(), shift(), การสร้างช่วงวันที่ และการสุ่มตัวอย่างใหม่ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “อนุกรมเวลาใน Pandas” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- GroupBy และการรวมข้อมูล
- ตารางไพวอตและตารางแจกแจงไขว้
- การผสานและการเชื่อมข้อมูลขั้นสูง
- อนุกรมเวลาใน Pandas