Извлечь год, месяц и день из datetime64[ns, UTC], Python
У меня есть этот столбец в DF:
> df["time"]
0 2007-02-01 22:00:00+00:00
1 2007-02-01 22:00:00+00:00
2 2007-02-01 22:00:00+00:00
3 2007-02-01 22:00:00+00:00
4 2007-02-01 22:00:00+00:00
Я хочу создать три новых столбца с указанием дня, месяца и года, но не могу найти способ извлечь каждый из этих time column
,
1 ответ
Решение
Чтобы не изменять существующие time
столбец, создайте отдельный ряд даты и времени, используя pd.to_datetime
а затем использовать dt
сбруя:
# obtain datetime series:
datetimes = pd.to_datetime(df['time'])
# assign your new columns
df['day'] = datetimes.dt.day
df['month'] = datetimes.dt.month
df['year'] = datetimes.dt.year
>>> df
time day month year
0 2007-02-01 22:00:00+00:00 1 2 2007
1 2007-02-01 22:00:00+00:00 1 2 2007
2 2007-02-01 22:00:00+00:00 1 2 2007
3 2007-02-01 22:00:00+00:00 1 2 2007
4 2007-02-01 22:00:00+00:00 1 2 2007
Альтернативой было бы использовать str.split('-')
на datetime.dt.date
серии:
datetimes = pd.to_datetime(df['time'])
df[['year','month','day']] = datetimes.dt.date.astype(str).str.split('-',expand=True)
>>> df
time year month day
0 2007-02-01 22:00:00+00:00 2007 02 01
1 2007-02-01 22:00:00+00:00 2007 02 01
2 2007-02-01 22:00:00+00:00 2007 02 01
3 2007-02-01 22:00:00+00:00 2007 02 01
4 2007-02-01 22:00:00+00:00 2007 02 01