In this tutorial, I will explain how to get a week number from a date in Python. As a data analyst working with time-series data in the USA, I often need to extract the week number from a given date for reporting and analysis purposes. Python provides several ways to accomplish this task, and I will cover the most effective methods with practical examples.
Week Numbers in Python
Before getting into the code, let’s clarify what we mean by “week number.” In Python, week numbers are typically calculated based on the ISO 8601 standard, which defines a week as starting on Monday and ending on Sunday. The first week of the year is the one that contains the first Thursday of the year.
Read How to Use Built-In Functions in Python?
Method 1: Use the isocalendar() Method
Python’s built-in datetime module provides the isocalendar() method, which returns a tuple containing the ISO year, week number, and weekday for a given date. Here’s an example:
from datetime import date
# Create a date object
d = date(2023, 7, 4) # July 4, 2023 (Independence Day in the USA)
# Get the week number
week_number = d.isocalendar()[1]
print(f"Week number for {d}: {week_number}")Output:
Week number for 2023-07-04: 27I have executed the above example and added the screenshot below.

In this example, we create a date object representing July 4, 2023 (Independence Day in the USA). We then use the isocalendar() method to extract the week number from the date. The isocalendar() method returns a tuple, and we access the second element (index 1) to get the week number.
Check out How to Use the find() Function in Python?
Method 2: Use the strftime() Method
Another way to get the weekly number is by using the strftime() method, which allows you to format a date according to a specified format string. Here’s an example:
from datetime import date
# Create a date object
d = date(2023, 11, 23) # November 23, 2023 (Thanksgiving Day in the USA)
# Get the week number
week_number = int(d.strftime("%V"))
print(f"Week number for {d}: {week_number}")Output:
Week number for 2023-11-23: 47I have executed the above example and added the screenshot below.

In this example, we create a date object representing November 23, 2023 (Thanksgiving Day in the USA). We then use the strftime() method with the format specifier "%V" to get the week number as a string. Finally, we convert the string to an integer using int().
Read How to Use Exponential Functions in Python?
Work with Pandas DataFrames in Python
When working with time-series data in Python, you often use the pandas library and its DataFrame structure. Pandas provide convenient methods to extract week numbers from dates in a DataFrame. Let’s see an example:
import pandas as pd
# Create a sample DataFrame
data = {
"Date": ["2023-01-01", "2023-02-14", "2023-07-04", "2023-11-23", "2023-12-25"],
"Event": ["New Year's Day", "Valentine's Day", "Independence Day", "Thanksgiving Day", "Christmas Day"]
}
df = pd.DataFrame(data)
# Convert the "Date" column to datetime type
df["Date"] = pd.to_datetime(df["Date"])
# Extract week numbers
df["Week Number"] = df["Date"].dt.isocalendar().week
print(df)Output:
Date Event Week Number
0 2023-01-01 New Year's Day 1
1 2023-02-14 Valentine's Day 7
2 2023-07-04 Independence Day 27
3 2023-11-23 Thanksgiving Day 47
4 2023-12-25 Christmas Day 51In this example, we create a sample DataFrame df with a “Date” column containing string representations of dates and an “Event” column with corresponding event names. We convert the “Date” column to datetime type using pd.to_datetime(). Then, we use the dt.isocalendar() accessor to extract the week numbers and assign them to a new “Week Number” column.
Check out How to Use Counter Function in Python?
Handle Different Date Formats in Python
Sometimes, you may encounter dates in different formats, such as “MM/DD/YYYY” or “YYYY-MM-DD”. Python’s datetime module can handle various date formats using the strptime() method. Here’s an example:
from datetime import datetime
# Date in "MM/DD/YYYY" format
date_str = "07/04/2023" # July 4, 2023 (Independence Day in the USA)
# Parse the date string
d = datetime.strptime(date_str, "%m/%d/%Y")
# Get the week number
week_number = d.isocalendar()[1]
print(f"Week number for {date_str}: {week_number}")Output:
Week number for 07/04/2023: 27In this example, we have a date string in the format “MM/DD/YYYY”. We use the strptime() method to parse the date string and specify the format using the format specifiers "%m" for month, "%d" day, and "%Y" year. Once we have the datetime object, we can extract the week number using the isocalendar() method as before.
Check out How to Create a Square Function in Python?
Conclusion
In this tutorial, I have explained how to get a week number from a date in Python. We discussed various ways like using the isocalender() method , using strftime() method , how to work with pandas DataFrames in Python and how to handle data formats in Python.
You may also like to read:
- What is Python Return Statement?
- How to Use the Mean() Function in Python?
- Python Class Method vs Static Method

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.