ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
เมื่อทำงานกับโครงการข้อมูลใน Python คุณมักจะใช้ฟังก์ชันวันที่และเวลา ชุดข้อมูลเกือบทุกชุดที่คุณจะใช้งานจะมีคอลัมน์วันที่และเวลาที่คุณต้องการจัดการตามความต้องการและข้อกำหนดของโครงการ
โชคดีที่ Python มาพร้อมกับโมดูลในตัวชื่อdatetimeที่ให้คุณแสดง จัดการ และดำเนินการกับอินสแตนซ์ datetime เช่น วันที่ เวลา และการรวมกันของทั้งสอง การเรียนรู้โมดูลวันที่และเวลาของ Python จะช่วยให้คุณทำการวิเคราะห์อนุกรมเวลาที่มีประสิทธิภาพมากขึ้นในโครงการของคุณ
โมดูล Python datetime เป็นเครื่องมือสำหรับจัดการวันที่ เวลา และช่วงเวลา ช่วยให้คุณดำเนินการต่างๆ ตามวันที่และเวลาได้อย่างตรงไปตรงมา
บทคัดย่อการเขียนโปรแกรม – ซอร์สโค้ดและไบนารี่โค้ดบนจอแสดงผลของนักพัฒนาซอฟต์แวร์ ชุดรูปแบบสีดำพร้อมไวยากรณ์สี
ด้วยการใช้โมดูล datetime ในPythonคุณจะสามารถทำงานกับค่าวันที่และเวลา จัดการโซนเวลา ทำการคำนวณ และแม้แต่จัดการการจัดรูปแบบและการแยกวิเคราะห์สำหรับการแทนค่าต่างๆ ได้อย่างง่ายดาย ฟังก์ชันนี้ทำให้โมดูล datetime เป็นเครื่องมือที่จำเป็นในหลายๆ แอปพลิเคชัน ตั้งแต่การประมวลผลข้อมูลไปจนถึงการจัดกำหนดการเหตุการณ์และอื่นๆ
ก่อนที่คุณจะเริ่มใช้โมดูล datetime ของ Python ในโปรเจ็กต์ของคุณ สิ่งสำคัญคือต้องเข้าใจคลาสพื้นฐาน ในส่วนด้านล่าง เราจะดูคลาสหลัก 5 คลาสของโมดูล DateTime ของ Python เข้าเรื่องกันเลย!
สารบัญ
คลาสหลัก 5 คลาสของ Python Datetime Module คืออะไร
โมดูล Python Datetime เป็นส่วนหนึ่งของไลบรารีมาตรฐานที่มีคลาสสำหรับจัดการและทำงานกับวันที่ เวลา เขตเวลา และระยะเวลา
โมดูลประกอบด้วยห้าคลาสหลัก:
วันเวลา
วันที่,
เวลา,
ไทม์เดลต้า
เขตเวลา.
เราจะดูแต่ละคลาสตามด้วยกรณีตัวอย่างเพื่อช่วยให้คุณเข้าใจแนวคิดได้ดีขึ้น
วิธีการใช้คลาส Datetime
คลาส Python Datetime เป็นคลาสที่ใช้บ่อยที่สุดในโมดูล ซึ่งแสดงถึงจุดเดียวในเวลาที่มีแอตทริบิวต์ เช่น ปี เดือน วัน ชั่วโมง นาที วินาที และไมโครวินาที
การดำเนินการทั่วไปบางอย่างกับคลาส Python Datetime รวมถึง:
datetime.datetime.now()
ฟังก์ชันนี้ช่วยให้คุณได้รับวันที่และเวลาปัจจุบัน ต่อไปนี้เป็นตัวอย่างของการดึงข้อมูลวันที่และเวลาปัจจุบัน:
import datetime
# Get the current date and time
now = datetime.datetime.now()
print("Current date and time: ", now)
นี่จะแสดงวันที่และเวลาปัจจุบันในขณะที่ดำเนินการในรูปแบบ YYYY-MM-DD HH:MM:SS.ssssss
datetime.datetime
ฟังก์ชันนี้ช่วยให้คุณสร้างวัตถุวันที่และเวลาที่กำหนดเองได้ ต่อไปนี้คือตัวอย่างการใช้ datetime.datetime ในโค้ดของคุณ:
from datetime import date
# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)
print("Custom date and time: ", custom_date)
นอกจากฟังก์ชันข้างต้นแล้ว คลาส Datetime ยังมีเมธอดสำหรับการทำงานกับวันที่และเวลา เช่น:
strftime() :
วิธีการนี้ให้คุณจัดรูปแบบวัตถุวันที่และเวลาเป็นสตริง ต่อไปนี้เป็นตัวอย่างของเมธอด strftime():
import datetime
# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)
# Format the datetime object as a string
formatted_date = custom_date.strftime("%B %d, %Y, %H:%M")
print("Formatted date and time: ", formatted_date)
รหัสนี้จะแปลงวัตถุ datetime เป็นสตริง:
สตริปไทม์() :
ฟังก์ชันนี้ในคลาส datetime อนุญาตให้คุณแยกวิเคราะห์สตริงที่แสดงถึงออบเจกต์วันที่และเวลาเป็นออบเจกต์ Datetime เดียว ต่อไปนี้คือตัวอย่างการแยกวิเคราะห์วันที่ที่จัดเก็บเป็นสตริงไปยังออบเจกต์ Datetime:
import datetime
# String representing a date and time
date_string = "May 22, 2023, 17:40"
# Parse the string into a datetime object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y, %H:%M")
print("Parsed date and time: ", parsed_date)
สิ่งนี้จะแปลงสตริงเป็นวัตถุ DateTime
วิธีใช้คลาสวันที่
คลาส Date อนุญาตให้คุณจัดการกับวัตถุวันที่ (ปี เดือน และวัน) โดยเฉพาะ คุณสามารถสร้างวัตถุวันที่ด้วยคลาสวันที่
การดำเนินการทั่วไปบางอย่างกับคลาส Date รวมถึง:
datetime.date.today()
ฟังก์ชันนี้ในคลาสวันที่ช่วยให้คุณได้รับวันที่ปัจจุบัน ต่อไปนี้เป็นตัวอย่างของการดึงข้อมูลวันที่ปัจจุบันด้วยคลาสวันที่:
import datetime
# Get the current date
today = datetime.date.today()
print("Today's date: ", today)
รหัส Python นี้จะแสดงวันที่ปัจจุบันในขณะที่ดำเนินการในรูปแบบ YYYY-MM-DD
ในขณะที่เขียนบทความนี้ วันที่ปัจจุบันคือ 2023-05-22
datetime.date()
ฟังก์ชันนี้ในคลาสวันที่อนุญาตให้คุณสร้างออบเจกต์วันที่ ตัวอย่างสาธิตการสร้างอ็อบเจ็กต์วันที่แบบกำหนดเองด้วยฟังก์ชัน datetime.date():
import datetime
# Create a custom date object
custom_date = datetime.date(2023, 5, 22)
print("Custom date: ", custom_date)
ในฟังก์ชัน datetime.date() คุณระบุปี เดือน และวันเป็นอาร์กิวเมนต์
สคริปต์นี้จะส่งออกเป็น 2023-05-22 เนื่องจากคุณได้สร้างวัตถุวันที่ที่กำหนดเองสำหรับวันที่ 22 พฤษภาคม 2023
คลาส Date ยังมีเมธอดที่เป็นประโยชน์ เช่น:
วันธรรมดา()
เมธอดนี้ในคลาสวันที่ส่งคืนวันในสัปดาห์ (0 สำหรับวันจันทร์ 1 สำหรับวันอังคาร เป็นต้น) ตัวอย่างต่อไปนี้สาธิตวิธี weekday() :
import datetime
# Create a custom date object
custom_date = datetime.date(2023, 5, 22)
# Get the day of the week
day_of_week = custom_date.weekday()
print("Day of the week: ", day_of_week)
ในตัวอย่างนี้ custom_date.weekday() จะคืนค่า 0 เนื่องจากวันที่ 22 พฤษภาคม 2023 ตรงกับวันจันทร์
สตริฟไทม์()
เมธอดนี้ในคลาสวันที่อนุญาตให้คุณจัดรูปแบบวัตถุวันที่เป็นสตริง ตัวอย่างต่อไปนี้แสดงให้เห็นถึงฟังก์ชัน strftime():
import datetime
# Create a custom date object
custom_date = datetime.date(2023, 5, 22)
# Format the date object as a string
formatted_date = custom_date.strftime("%B %d, %Y")
print("Formatted date: ", formatted_date)
นี่จะแสดงวันที่ในรูปแบบ "เดือน วัน ปี"
สตริปไทม์()
วิธีนี้ทำให้คุณสามารถแยกวิเคราะห์สตริงที่แสดงวันที่ในวัตถุวันที่ ต่อไปนี้คือตัวอย่างการแปลงวันที่แบบสตริงเป็นวัตถุวันที่:
import datetime
# String representing a date
date_string = "May 22, 2023"
# Parse the string into a date object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y").date()
print("Parsed date: ", parsed_date)
สิ่งนี้จะส่งออกวัตถุวันที่ที่สร้างจากสตริงวันที่
วิธีใช้คลาสเวลา
คลาสเวลาช่วยให้คุณทำงานกับอินสแตนซ์เวลา (ชั่วโมง นาที วินาที ไมโครวินาที) ด้วยคลาสเวลา คุณสามารถสร้างอ็อบเจกต์เวลาแบบกำหนดเองด้วยdatetime.time()
ตัวอย่างต่อไปนี้สาธิตการสร้างอ็อบเจกต์เวลาแบบกำหนดเอง:
import datetime
# Create a custom time object
custom_time = datetime.time(17, 40)
print("Custom time: ", custom_time)
ใน ฟังก์ชัน datetime.time() คุณระบุชั่วโมงและนาทีเป็นอาร์กิวเมนต์
สคริปต์นี้จะส่งออก 17:40:00 ตามที่ระบุไว้ในโค้ด Python
คลาส Time มีเมธอดที่เป็นประโยชน์ เช่น:
สตริฟไทม์()
วิธีนี้ทำให้คุณสามารถจัดรูปแบบวัตถุเวลาเป็นสตริงได้ ด้านล่างนี้เป็นตัวอย่างของฟังก์ชันนี้:
import datetime
# Create a custom time object
custom_time = datetime.time(17, 40)
# Format the time object as a string
formatted_time = custom_time.strftime("%H:%M")
print("Formatted time: ", formatted_time)
สิ่งนี้จะแสดงเวลาท้องถิ่นในรูปแบบ “ชั่วโมง:นาที”
สตริปไทม์()
ฟังก์ชันนี้ทำให้คุณสามารถแยกวิเคราะห์สตริงที่แสดงเวลาเป็นวัตถุเวลาได้ ตัวอย่างต่อไปนี้แสดงให้เห็นถึงฟังก์ชันนี้:
from datetime import time
# String representing a time
time_string = "17:40"
# Parse the string into a time object
parsed_time = datetime.datetime.strptime(time_string, "%H:%M").time()
print("Parsed time: ", parsed_time)
สิ่งนี้จะส่งออกวัตถุเวลาที่สร้างขึ้นจากสตริงเวลา
How to Use The Timedelta Class
The Timedelta class allows you to represent represents a duration or difference between two dates or times.
With Timedelta class, you can perform the following operations:
Calculate the difference between two dates or times
An example of calculating the difference between two dates is given below:
import datetime
# Create two custom date objects
date1 = datetime.date(2023, 5, 22)
date2 = datetime.date(2023, 6, 1)
# Calculate the difference between the two dates
date_difference = date2 - date1
print("Difference between the dates is: ", date_difference.days, "days")
In this example, date_difference is a timedelta object representing the difference between date2 and date1. The .days property gives the number of days between the two dates.
Add or subtract a duration to a date or time
An example of adding a duration to a date is given below:
import datetime
# Create a custom date object
custom_date = datetime.date(2023, 5, 22)
# Create a duration of 10 days
duration = datetime.timedelta(days=10)
# Add the duration to the date
new_date = custom_date + duration
print("New date: ", new_date)
In this example, duration is a timedelta object representing a duration of 10 days. We use the + operator to add this duration to custom_date.
How to Use the Timezone Class
The Timezone class allows you to handle time zones and daylight saving time adjustments.
You can perform the following operation with timezone class:
To create a timezone object, you can use the datetime.timezone() function. The following example demonstrates creating a timezone object:
import datetime
# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))
print("Timezone object: ", two_hours_ahead)
In this example, two_hours_ahead is a timezone object representing a timezone that is 2 hours ahead of Coordinated Universal Time (UTC).
This script will output a timezone object like .
To achieve this, you can use the .replace(tzinfo=tz) function. The following example demonstrates this function:
import datetime
# Create a naive datetime object
naive_datetime = datetime.datetime(2023, 5, 22, 17, 40)
# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))
# Convert the naive datetime object to an aware object
aware_datetime = naive_datetime.replace(tzinfo=two_hours_ahead)
print("Aware datetime object: ", aware_datetime)
In this example, naive_datetime is a datetime object that does not have any timezone information. The two_hours_ahead variable is a timezone object representing a timezone that is 2 hours ahead of UTC.
The replace(tzinfo=two_hours_ahead) method is used to create a new datetime object with the same date and time as naive_datetime, but with tzinfo set to two_hours_ahead.
The Timezone helps you maintain accurate and consistent time values when working with data that spans multiple time zones.
You have gone through some of the most important functions in the datetime module in Python. In the next section we will implement some of the above functions to a case studywhich will give you a practical look into the implementation of these datetime module in your projects.
Implementing the DateTime Module Functions to a Case Study
Let’s consider a case study where we are given a dataset of different events that happened around the world. The dataset has corresponding dates and times in a string format.
หน้าที่ของเราคือแปลงวันที่และเวลาเหล่านี้ให้เป็นวัตถุ DateTime และดำเนินการตามที่จำเป็น
สมมติว่าเราได้รับชุดข้อมูลต่อไปนี้:
หากเราตรวจสอบประเภทข้อมูลของตัวแปร เราจะเห็นว่าวันที่และเวลาถูกจัดเก็บเป็นสตริง ดังนั้น ก่อนที่จะดำเนินการวิเคราะห์ใดๆ เราต้องแปลงคอลัมน์วันที่และเวลาให้เป็นรูปแบบที่เหมาะสม
ในการทำเช่นนี้ เราสามารถใช้รหัสต่อไปนี้:
import datetime
# Convert 'Date' and 'Time' strings into datetime objects
df['DateTime'] = df['Date'] + ' ' + df['Time']
df['DateTime'] = df['DateTime'].apply(lambda x: datetime.datetime.strptime(x, "%b %d, %Y %H:%M"))
print(df)
ในกลุ่มโค้ดนี้ ก่อนอื่นเราจะสร้างคอลัมน์ใหม่ 'DateTime' ใน DataFrame ของคุณโดยเชื่อมคอลัมน์ 'Date' และ 'Time' จากนั้น เราใช้ฟังก์ชัน datetime.strptime กับแต่ละค่าในคอลัมน์ใหม่นี้เพื่อแปลงสตริงวันที่และเวลาให้เป็นออบเจกต์วันที่และเวลา สุดท้ายเราพิมพ์ DataFrame เพื่อดูผลลัพธ์
สิ่งต่อไปที่เราอยากทำคือการคำนวณความแตกต่างระหว่างสองเหตุการณ์ ในการทำเช่นนี้เราสามารถใช้รหัสต่อไปนี้:
duration = df.loc[1, 'DateTime'] - df.loc[0, 'DateTime']
print("Duration between Event1 and Event2: ", duration)
สคริปต์ Python นี้จะคำนวณระยะเวลาระหว่าง 'Event1' และ 'Event2'
สุดท้าย มาแปลง datetime object เป็นเขตเวลาอื่นกัน เมื่อทำได้โดยใช้ฟังก์ชันเขตเวลาในโมดูลวันที่และเวลา
# Create a timezone object for UTC
utc_tz = datetime.timezone(datetime.timedelta(0))
# Convert the datetime objects into UTC
df['DateTime_UTC'] = df['DateTime'].apply(lambda x: x.replace(tzinfo=utc_tz))
print(df)
ในรหัสนี้ เราสร้างวัตถุเขตเวลาสำหรับ UTC ต่อไป เราสร้างคอลัมน์ใหม่ใน DataFrame ชื่อ 'DateTime_UTC' โดยใช้ฟังก์ชัน lambda กับคอลัมน์ 'DateTime' ซึ่งจะแทนที่ข้อมูลเขตเวลาของแต่ละออบเจ็กต์ datetime ด้วย UTC
จากกรณีศึกษาตัวอย่างข้างต้น คุณจะเห็นว่าฟังก์ชันต่างๆ ที่มีให้โดยโมดูล DateTime ทำงานร่วมกันอย่างไรเพื่อจัดการวันที่และเวลาให้เป็นรูปแบบที่เหมาะสม
ตอนนี้คุณคุ้นเคยกับฟังก์ชันบางอย่างในโมดูล datetime แล้ว ต่อไปมาดูฟังก์ชันเพิ่มเติมบางอย่างที่คุณต้องการใช้เมื่อคุณทำโครงการที่ซับซ้อนมากขึ้น
นอกเหนือจากฟังก์ชันที่แสดงด้านบนแล้ว ยังมีฟังก์ชันที่มีประโยชน์อื่นๆ อีกมากมายที่คุณสามารถใช้ได้โดยขึ้นอยู่กับปัญหาที่เกิดขึ้น นักพัฒนา Python มักจะ เปิดหน้า เอกสารไว้เพื่อค้นหาฟังก์ชันที่สามารถตอบสนองความต้องการของคุณได้ และเราขอแนะนำให้คุณทำเช่นเดียวกัน!
ฟังก์ชันวันที่และเวลาเพิ่มเติม
ในส่วนนี้ เราจะพูดถึงฟังก์ชันเพิ่มเติมใน โมดูลPython datetime ซึ่งรวมถึงการดึงชื่อวันธรรมดา เดือน และวันทำงาน พร้อมด้วยฟังก์ชันctime()
วิธีดึงวันธรรมดาจากวันที่
โมดูลdatetimeมาพร้อมกับ ฟังก์ชัน dayday()ซึ่งจะคืนค่าวันในสัปดาห์เป็นจำนวนเต็ม (โดยที่วันจันทร์คือ 0 และวันอาทิตย์คือ 6)
ในการใช้ฟังก์ชันนี้ คุณสามารถเรียกใช้บนออบเจกต์วันที่หรือวันที่เวลา
import datetime
today = datetime.date.today()
weekday_number = today.weekday()
print(weekday_number)
ผลลัพธ์ของโค้ดด้านบนแสดงไว้ในภาพด้านล่าง:
วันที่ท้องถิ่นปัจจุบันคือ 5/23/2023 และวันธรรมดาคือวันจันทร์
วิธีดึงชื่อเดือนและวันธรรมดาจากวันที่
วันที่และเวลายังช่วยให้คุณดึงชื่อเดือนและวันในสัปดาห์ได้อีกด้วย
คุณสามารถใช้ ฟังก์ชัน strftime()ซึ่งจะจัดรูปแบบวันที่หรือวัตถุวันที่และเวลาเป็นสตริง
ต่อไปนี้คือตัวอย่างวิธีใช้ ฟังก์ชัน strftime()เพื่อรับชื่อเดือนและวันในสัปดาห์:
import datetime
today = datetime.date.today()
weekday_name = today.strftime('%A')
month_name = today.strftime('%B')
print(weekday_name)
print(month_name)
รหัสนี้จะพิมพ์ชื่อวันในสัปดาห์และชื่อเดือนในเอาต์พุต
วิธีใช้ฟังก์ชัน Ctime
ฟังก์ชันctime()ใน โมดูล datetimeส่งกลับการแสดงสตริงของออบเจกต์วันที่หรือวันที่และเวลา โดยจัดรูปแบบเป็น “Day Mon DD HH:MM:SS YYYY”
ctimeเป็นเมธอดสำหรับ อ็อบเจ็กต์ datetimeไม่ใช่ฟังก์ชันแบบสแตนด์อโลน
ต่อไปนี้คือตัวอย่างการใช้ฟังก์ชัน ctime ในโค้ดของคุณ:
import datetime
now = datetime.datetime.now()
formatted_date = now.ctime()
print(formatted_date)
รหัสด้านบนจะส่งกลับการแสดงสตริงของวัตถุวันที่
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานกับข้อมูลอนุกรมเวลา โปรดดูวิดีโอต่อไปนี้:
ความคิดสุดท้าย
ในฐานะโปรแกรมเมอร์ Python การเรียนรู้โมดูล datetime เป็นสิ่งสำคัญ เป็นชุดเครื่องมือที่ช่วยให้คุณสามารถจัดการกับวันที่ เวลา และช่วงเวลาต่างๆ องค์ประกอบเหล่านี้มักพบในข้อมูลจริง
คุณจะต้องใช้โมดูลนี้เพื่อแปลงสตริงเป็นออบเจกต์วันที่เวลา จัดการการแปลงเขตเวลา และดำเนินการกับวันที่และเวลา
ด้วยการเรียนรู้วิธีใช้โมดูล datetime คุณจะพร้อมรับมือกับงานเหล่านี้ในโครงการของคุณเองได้ดีขึ้น!
ตนเองคืออะไรใน Python: ตัวอย่างในโลกแห่งความเป็นจริง
คุณจะได้เรียนรู้วิธีการบันทึกและโหลดวัตถุจากไฟล์ .rds ใน R บล็อกนี้จะครอบคลุมถึงวิธีการนำเข้าวัตถุจาก R ไปยัง LuckyTemplates
ในบทช่วยสอนภาษาการเข้ารหัส DAX นี้ เรียนรู้วิธีใช้ฟังก์ชัน GENERATE และวิธีเปลี่ยนชื่อหน่วยวัดแบบไดนามิก
บทช่วยสอนนี้จะครอบคลุมถึงวิธีการใช้เทคนิค Multi Threaded Dynamic Visuals เพื่อสร้างข้อมูลเชิงลึกจากการแสดงข้อมูลแบบไดนามิกในรายงานของคุณ
ในบทความนี้ ฉันจะเรียกใช้ผ่านบริบทตัวกรอง บริบทตัวกรองเป็นหนึ่งในหัวข้อหลักที่ผู้ใช้ LuckyTemplates ควรเรียนรู้ในขั้นต้น
ฉันต้องการแสดงให้เห็นว่าบริการออนไลน์ของ LuckyTemplates Apps สามารถช่วยในการจัดการรายงานและข้อมูลเชิงลึกต่างๆ ที่สร้างจากแหล่งข้อมูลต่างๆ ได้อย่างไร
เรียนรู้วิธีคำนวณการเปลี่ยนแปลงอัตรากำไรของคุณโดยใช้เทคนิคต่างๆ เช่น การแยกสาขาและการรวมสูตร DAX ใน LuckyTemplates
บทช่วยสอนนี้จะหารือเกี่ยวกับแนวคิดของการทำให้แคชข้อมูลเป็นรูปธรรมและวิธีที่สิ่งเหล่านี้ส่งผลต่อประสิทธิภาพของ DAX ในการให้ผลลัพธ์
หากคุณยังคงใช้ Excel อยู่จนถึงตอนนี้ นี่เป็นเวลาที่ดีที่สุดในการเริ่มใช้ LuckyTemplates สำหรับความต้องการในการรายงานทางธุรกิจของคุณ
เกตเวย์ LuckyTemplates คืออะไร ทั้งหมดที่คุณต้องการรู้