Pandas: як отримати день року від дати


Ви можете використовувати наступний базовий синтаксис, щоб отримати день року зі стовпця дати в pandas DataFrame:

 df[' day_of_year '] = df[' date ']. dt . dayofyear

У цьому конкретному прикладі створюється новий стовпець під назвою day_of_year , який містить день року значення в стовпці date .

Зверніть увагу, що значення day_of_year коливатимуться від 1 (1 січня) до 365 (31 грудня).

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: отримати день року з дати в Pandas

Припустімо, що у нас є такий фрейм даних pandas, який містить інформацію про загальну кількість продажів у магазині в різні дати:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': pd.date_range (start=' 1/1/2022 ', freq=' M ', periods= 10 ),
                   ' sales ': [6, 8, 10, 5, 4, 8, 8, 3, 5, 14]})

#view DataFrame
print (df)

         dirty date
0 2022-01-31 6
1 2022-02-28 8
2 2022-03-31 10
3 2022-04-30 5
4 2022-05-31 4
5 2022-06-30 8
6 2022-07-31 8
7 2022-08-31 3
8 2022-09-30 5
9 2022-10-31 14

Пов’язане: Як створити діапазон дат у Pandas

Ми можемо використати такий код, щоб створити новий стовпець під назвою day_of_year , який містить день року зі стовпця дати :

 #create new column that contains day of year in 'date' column
df[' day_of_year '] = df[' date ']. dt . dayofyear

#view updated DataFrame
print (df)

        date sales day_of_year
0 2022-01-31 6 31
1 2022-02-28 8 59
2 2022-03-31 10 90
3 2022-04-30 5 120
4 2022-05-31 4 151
5 2022-06-30 8,181
6 2022-07-31 8,212
7 2022-08-31 3,243
8 2022-09-30 5,273
9 2022-10-31 14,304

Новий стовпець під назвою day_of_year містить день року стовпця date .

Слід зазначити, що якщо ви працюєте з високосним роком, ця функція автоматично розширить діапазон можливих значень з 365 до 366.

Також зауважте, що якщо стовпець, з яким ви працюєте, є рядковим стовпцем, ви повинні спочатку використати pd.to_datetime() , щоб перетворити рядки на розпізнавані дати:

 #convert string column to datetime and calculate day of year
df[' day_of_year '] = pd. to_datetime (df[' date ']). dt . dayofyear

Примітка . Повну документацію щодо функції pandas dayofyear можна знайти тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

Як додавати та віднімати дні від дати в Pandas
Як вибрати рядки між двома датами в Pandas
Як створити стовпець дати з року, місяця та дня в Pandas

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *