To extract the days in month from a datetime column in pandas, you can access the “days_in_month” property. The “days_in_month” property returns a 64-bit integer.

import pandas as pd

df = pd.DataFrame({
    "date": ["2021-09-30", "2021-12-31", "2022-03-31", "2022-06-30", "2022-09-30", "2022-12-31"],
    "sales": [100,30,50,60,10,80]
})

df["date"] = pd.to_datetime(df["date"])

df["days_in_month"] = df["date"].dt.days_in_month

print(df)

#Output:
        date  sales  days_in_month
0 2021-09-30    100             30
1 2021-12-31     30             31
2 2022-03-31     50             31
3 2022-06-30     60             30
4 2022-09-30     10             30
5 2022-12-31     80             31

When working with data which contains information over time, the ability to extract certain pieces of information from our data easily is valuable.

One such piece of information is getting the days in month from a date when using pandas in Python.

To get how many days are in the month of a datetime value in pandas, you can access the pandas datetime “days_in_month” property. The “days_in_month” property returns a 64-bit integer.

Below is a simple example which shows you how to get the days in month from a datetime variables in a pandas DataFrame.

import pandas as pd

df = pd.DataFrame({
    "date": ["2021-09-30", "2021-12-31", "2022-03-31", "2022-06-30", "2022-09-30", "2022-12-31"],
    "sales": [100,30,50,60,10,80]
})

df["date"] = pd.to_datetime(df["date"])

df["days_in_month"] = df["date"].dt.days_in_month

print(df)

#Output:
        date  sales  days_in_month
0 2021-09-30    100             30
1 2021-12-31     30             31
2 2022-03-31     50             31
3 2022-06-30     60             30
4 2022-09-30     10             30
5 2022-12-31     80             31

Hopefully this article has been useful for you to learn how to get the number of days in a month from a datetime variable in a pandas DataFrame in Python.

Categorized in:

Python,

Last Update: March 1, 2024