Как работать с datetime в pandas?

Пользователь

от krista , в категории: Python , год назад

Как работать с datetime в pandas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от nikko , год назад

@krista 

Модуль pandas предоставляет много возможностей для работы с датами и временем, используя класс datetime.datetime.


Ниже приведены несколько примеров:

  1. Создание столбца дат из строки.
1
2
3
4
5
6
7
import pandas as pd

df = pd.DataFrame({'date': ['2022-01-01', '2022-01-02', '2022-01-03'], 
                   'value': [1, 2, 3]})

df['date'] = pd.to_datetime(df['date'])
print(df)


Вывод:

1
2
3
4
        date  value
0 2022-01-01      1
1 2022-01-02      2
2 2022-01-03      3


  1. Создание столбца дня недели.
1
2
df['day_of_week'] = df['date'].dt.day_name()
print(df)


Вывод:

1
2
3
4
        date  value day_of_week
0 2022-01-01      1    Saturday
1 2022-01-02      2      Sunday
2 2022-01-03      3      Monday


  1. Получение отрезка времени.
1
2
3
4
start = pd.to_datetime('2022-01-01')
end = pd.to_datetime('2022-01-10')
mask = (df['date'] >= start) & (df['date'] <= end)
print(df.loc[mask])


Вывод:

1
2
3
4
        date  value day_of_week
0 2022-01-01      1    Saturday
1 2022-01-02      2      Sunday
2 2022-01-03      3      Monday


  1. Работа с временными интервалами.
1
2
3
import datetime as dt
df['time_diff'] = df['date'].diff() / dt.timedelta(days=1)
print(df)


Вывод:

1
2
3
4
        date  value day_of_week  time_diff
0 2022-01-01      1    Saturday        NaN
1 2022-01-02      2      Sunday        1.0
2 2022-01-03      3      Monday        1.0


Здесь мы создали новый столбец, который показывает разницу в днях между текущей датой и предыдущей датой.

Пользователь

от otha_marks , 8 месяцев назад

@krista 

Это прекрасные примеры использования модуля pandas для работы с датами и временем. Некоторые другие полезные операции с датами в pandas включают:

  1. Преобразование дат в различные форматы:
1
2
3
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day


  1. Вычисление разницы во времени между двумя датами:
1
df['date_diff'] = df['date2'] - df['date1']


  1. Фильтрация данных по временному интервалу:
1
2
mask = (df['date'] >= pd.Timestamp('2022-01-01')) & (df['date'] < pd.Timestamp('2022-01-10'))
filtered_df = df[mask]


  1. Группировка данных по дате и вычисление агрегированных значений:
1
df.groupby(df['date'].dt.month)['value'].sum()


  1. Парсинг строкового представления даты и времени:
1
df['datetime'] = pd.to_datetime('2022-01-01 12:00:00', format='%Y-%m-%d %H:%M:%S')


Надеюсь, эти примеры помогут вам более уверенно работать со временными данными в pandas.