Персональная документация для управления датой и временем в python / pandas. Это живой документ, помогающий выполнять аналитические проекты в Jupyter Notebook.
—
Оглавление:
- "Какое сегодня число?"
- Тимедельтас
- Преобразовать дату и время в дату
- Создать новый столбец [« день ], [ неделя ], [ месяц ] или [ год ] из даты и времени»
- Преобразовать строку в метку времени
- Преобразовать строку в Datetime
- Преобразовать столбец даты строки Dataframe в Datetime
- Удалить данные строки даты
- Преобразовать метку времени в строку
- Преобразовать строковый столбец в Datetime
- Преобразовать отметку времени в дату и время
- Модификаторы даты Unix
p.s. Я работаю над сборником упражнений, чтобы помочь в изучении и запоминании функций даты, времени и отметки времени с помощью Python / Pandas.
Эта записная книжка станет отличным способом запомнить все эти функции даты и времени, поэтому вам не придется гуглить!
Представьте себе, что вы просто запомнили все эти операторы даты и времени и отметок времени. Это сделало бы анализ быстрее.
Если вы хотите получить уведомление, когда я запущу этот продукт, оставьте свой адрес электронной почты через эту форму.
1. Какая сегодня дата?
# gives timestamp of today's date at the time of cell execution
import pandas as pd
today = pd.to_datetime('today')

2. Timedeltas
# using timedelta on a datetime
from datetime import timedelta
today = pd.to_datetime('today')
last_week = today + timedelta(days=-7)
# this will return a timestamp
3. Преобразование даты и времени в дату.
from datetime import datetime as dt df['date'] = df['date_time'].dt.normalize()
4. Создайте новый столбец ["день"], ["неделя"], ["месяц"] или ["год"] из даты и времени
df['week'] = df['date_time'].dt.week
df['month'] = df['date_time'].dt.month
df['year'] = df['date_time'].dt.year
df['week-year'] = df['date_time'].dt.strftime('%Y-%U')
df['month-year'] = df['date_time'].dt.strftime('%Y-%m')
Другой способ приблизиться к этому (если вы получаете сообщение об ошибке: Можно использовать только метод доступа .dt со значениями типа datetime):
df['month'] = pd.DatetimeIndex(df['start_date']).month df['year'] = pd.DatetimeIndex(df['start_date']).year
Ресурсы:
- Https://www.interviewqs.com/ddi_code_snippets/extract_month_year_pandas
- Https://stackoverflow.com/questions/39208305/pandas-how-to-create-a-year-week-variable
- Https://stackoverflow.com/questions/31984119/python-how-to-know-the-week-number-in-the-year-of-the-day-saturday-as-the-firs
- Https://stackoverflow.com/questions/31181295/converting-a-pandas-date-to-week-number
- Https://www.programiz.com/python-programming/datetime/strftime
5. Преобразование строки в метку времени
import time
import datetime
s = "01/12/2011"
time_stamp = time.mktime(datetime.datetime.strptime(s, "%d/%m/%Y").timetuple())
6. Преобразуйте строку в Datetime
date_string = '2019-04-17' time_stamp = pd.to_datetime(date_string) date_time = time_stamp.date()
7. Преобразовать столбец строки Dataframe в Datetime
df['datetime'] = pd.to_datetime(df.date_string) time_stamp = pd.to_datetime(date_string) date_time = time_stamp.date()
8. Удалите данные строки даты.
date_string = '2020-07-26T00:00:00'
df['date_string'].str.strip('T00:00:00')
9. Преобразуйте метку времени или дату и время в строку.
str(timestamp) #output will look like: '2019-11-02 11:26:58.924878' str(timestamp)[:-16] #output will look like: '2019-11-02' #then you can evalute <, >, = vs. other date strings sometimes you need to mess around with the values x & y here to get the string you want... str(timestamp)[X:Y] for example, str(timestamp)[1:18] may be required in some instances, etc.
10. Преобразование строкового столбца в Datetime
df['date_time'] = df['string_date'].astype('datetime64[ns]')
11. Преобразовать отметку времени в дату и время
date_time = time_stamp.date()
12. Модификаторы даты Unix
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
%b locale's abbreviated month name (e.g., Jan)
%B locale's full month name (e.g., January)
%c locale's date and time (e.g., Thu Mar 3 23:05:25 2005)
%C century; like %Y, except omit last two digits (e.g., 20)
%d day of month (e.g., 01)
%D date; same as %m/%d/%y
%e day of month, space padded; same as %_d
%F full date; like %+4Y-%m-%d
%g last two digits of year of ISO week number (see %G)
%G year of ISO week number (see %V); normally useful only with %V
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour, space padded ( 0..23); same as %_H
%l hour, space padded ( 1..12); same as %_I
%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale's equivalent of either AM or PM; blank if not known
%P like %p, but lower case
%q quarter of year (1..4)
%r locale's 12-hour clock time (e.g., 11:11:04 PM)
%R 24-hour hour and minute; same as %H:%M
%s seconds since 1970-01-01 00:00:00 UTC
%S second (00..60)
%t a tab
%T time; same as %H:%M:%S
%u day of week (1..7); 1 is Monday
%U week number of year, with Sunday as first day of week (00..53)
%V ISO week number, with Monday as first day of week (01..53)
%w day of week (0..6); 0 is Sunday
%W week number of year, with Monday as first day of week (00..53)
%x locale's date representation (e.g., 12/31/99)
%X locale's time representation (e.g., 23:13:48)
%y last two digits of year (00..99)
%Y year
%z +hhmm numeric time zone (e.g., -0400)
%:z +hh:mm numeric time zone (e.g., -04:00)
%::z +hh:mm:ss numeric time zone (e.g., -04:00:00)
%:::z numeric time zone with : to necessary precision (e.g., -04,
+05:30)
%Z alphabetic time zone abbreviation (e.g., EDT)
Спасибо за прочтение! Надеюсь, эта статья была полезной.