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.