Извлечь номер недели из даты в Pandas-Python

Опубликовано: 27 Марта, 2022

Часто при работе с некоторыми данными, содержащими даты, нам может потребоваться извлечь номер недели из определенной даты. В Python это легко сделать с помощью панд.

Example 1:

# importing pandas as pd
import pandas as pd 
  
# creating a dictionary containing a date
dict = {"Date":["2015-06-17"]}
  
# converting the dictionary to a dataframe
df = pd.DataFrame.from_dict(dict)
  
# converting the date to the required format
df["Date"] = pd.to_datetime(df["Date"], errors ="coerce")
df.astype("int64").dtypes
  
# extracting the week from the date
weekNumber = df["Date"].dt.week
  
print(weekNumber)

Output:

0    25
Name: Date, dtype: int64

Example 2: We can also do the same for multiple dates by adding more dates in the ‘Date’ object.

# importing pandas as pd
import pandas as pd 
  
# creating a dictionary containing a date
dict = {"Date":["2020-06-17", "2020-01-14"
                "2020-09-20", "2020-08-15"]}
  
# converting the dictionary to a 
# dataframe
df = pd.DataFrame.from_dict(dict)
  
# converting the date to the required 
# format
df["Date"] = pd.to_datetime(df["Date"],
                            errors ="coerce")
df.astype("int64").dtypes
  
# extracting the week from the date
weekNumber = df["Date"].dt.week
  
print(weekNumber)

Output:

Example 3: Extracting week number from dates for multiple dates using date_range() and to_series().

  • pandas.data_range(): It generates all the dates from the start to end date

    Syntax:

    pandas.date_range(start, end, periods, freq, tz, normalize, name, closed)

  • pandas.to_series(): It creates a Series with both index and values equal to the index keys.

    Syntax:

    Index.to_series(self, index, name)
# importing pandas as pd
import pandas as pd 
  
# generating all dates in given range
# with increment by days
allDates = pd.date_range("2020-06-27", "2020-08-03", freq ="W")
  
# converting dates to series
series = allDates.to_series()
  
series.dt.week

Output:

Example 4: In this example, we’ll be using pandas.Series() to generate dates and use a different way to convert the series to the dataframe.

pandas.Series(): Used to create a one-dimensional ndarray with axis labels.
Syntax:

pandas.Series(data, index, dtype, name, copy, fastpath)
# importing pandas as pd
import pandas as pd 
  
# generating the series
dates = pd.Series(pd.date_range("2020-2-10",
                                periods = 5,
                                freq ="M"))
  
# converting to dataframe
df = pd.DataFrame({"date_given": dates})
  
# extracting the week number
df["week_number"] = df["date_given"].dt.week
  
df

Выход:

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.