To get the month name from a datetime column in pandas, you can use the pandas month_name() function. month_name() returns the name of the month as a string.

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["month_name"] = df["date"].dt.month_name()

print(df)

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

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 month name from a date when using pandas in Python.

To get the month name from a datetime column in pandas, you can use the pandas datetime month_name() function. month_name() returns the name of the month as a string.

Below is a simple example which shows you how to get the name of the month from a datetime columns 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["month_name"] = df["date"].dt.month_name()

print(df)

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

Get Month Number from Datetime in pandas

If you want to get the month from a datetime in pandas, instead of the month name, then you can access the pandas datetime “month” property. The “month” property returns a 64-bit integer.

Below is the same DataFrame as above but now we will get the month numbers for each datetime in the date column.

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["month"] = df["date"].dt.month

print(df)

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

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

Categorized in:

Python,

Last Update: March 11, 2024