Olá, Allan! Tudo bem com você?
Segue abaixo de como fazer isso:
Primeiro vamos criar um Datarame para simular o que você mandou:
import pandas as pd
import numpy as np
# Criação do intervalo de tempo a ser utilizado na coluna 'tempo'
rng = pd.date_range('2000-01-01', periods=100, freq='H')
# Criação do DataFrame com as colunas 'tempo' e 'demanda_hora'
df = pd.DataFrame({'tempo': rng, 'demanda_hora': np.random.randint(30000, 50000, size=(100))})
df.head()
Saída:
| tempo | demanda_hora |
---|
0 | 2000-01-01 00:00:00 | 42054 |
1 | 2000-01-01 01:00:00 | 43741 |
2 | 2000-01-01 02:00:00 | 35323 |
3 | 2000-01-01 03:00:00 | 43171 |
4 | 2000-01-01 04:00:00 | 47266 |
Vamos criar agora cada coluna com as informações que temos na coluna tempo
:
df['ano'] = df['tempo'].dt.year
df['mes'] = df['tempo'].dt.month
df['dia'] = df['tempo'].dt.day
df['hora'] = df['tempo'].dt.hour
Saída:
| tempo | demanda_hora | ano | mes | dia | hora |
---|
0 | 2000-01-01 00:00:00 | 40162 | 2000 | 1 | 1 | 0 |
1 | 2000-01-01 01:00:00 | 47773 | 2000 | 1 | 1 | 1 |
2 | 2000-01-01 02:00:00 | 34677 | 2000 | 1 | 1 | 2 |
3 | 2000-01-01 03:00:00 | 44171 | 2000 | 1 | 1 | 3 |
4 | 2000-01-01 04:00:00 | 35271 | 2000 | 1 | 1 | 4 |
No código acima cada uma dessas colunas corresponde a uma unidade de tempo diferente (ano, mês, dia e hora) e é criada utilizando o método "dt" do Pandas.
O método "dt" permite acessar as propriedades de data/hora de uma coluna de data/hora. No código, é utilizado o método "dt.year" para obter o ano correspondente à coluna "tempo", "dt.month" para obter o mês, "dt.day" para obter o dia e "dt.hour" para obter a hora.
Em seguida, esses valores são atribuídos a novas colunas criadas no DataFrame utilizando a sintaxe "df['nome_da_coluna'] = valores". Com isso, o DataFrame é expandido para incluir as novas colunas correspondentes às unidades de tempo especificadas.
Qualquer dúdiva estou à disposição.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!