Datatime é um tipo de dados de hora em Python. É mais conveniente converter diferentes formatos de hora. O Pandas também oferece suporte ao mecanismo de dados DataTime, que pode ser usado para realizar muitas funções úteis, como
1. A função to_datetime () converte a coluna Series na lista de dados para o tipo datetime,
#Convert the type to datetime
apple.Date = pd.to_datetime(apple.Date)
apple['Date'].head()
#
0 2014-07-08
1 2014-07-07
2 2014-07-03
3 2014-07-02
4 2014-07-01
Name: Date, dtype: datetime64[ns]
2. DataFrame.resample (freq), reamostrar os dados globais com base na coluna de tempo com freq como a frequência e calcular a soma dos dados do segmento, média, variância e outros indicadores; o índice dos dados originais no exemplo a seguir é o Formato de dados data e hora, use o mês como unidade de tempo para encontrar a média de cada coluna de dados
# Resample the data based the offset,get the mean of data
# BM — bussiness month end frequency
apple_month = apple.resample("BM").mean()
apple_month.head()
O seguinte irá apresentar brevemente como o Pandas lida com dados DataFrame com base em alguns exercícios
1, operações to_datetime () e resample ()
1.1, ler dados
url = "https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/09_Time_Series/Apple_Stock/appl_1980_2014.csv"
apple =pd.read_csv(url)
apple.head()
Como você pode ver, a hora está nos dados da coluna Data, mas não está no formato data e hora padrão. Ela precisa ser formatada.
1.2, conversão de formato de data e hora
#Convert the type to datetime
apple.Date = pd.to_datetime(apple.Date)
apple['Date'].head()
** 1.3, defina a coluna Data para indexar **
apple = apple.set_index("Date")
# Set Index
apple.head()
Embora a data tenha sido definida para indexar, a organização da hora não é clara. Os dados da data e hora podem ser classificados diretamente. Aqui, sort_index (ascendente = Verdadeiro) é usado para concluir a classificação.
1.4, classifique o índice
# Sort The DataFrame based on Date columns
apple.sort_index(ascending = True).head()
1.5, dados de amostra por mês e obter a média ()
# Resample the data based the offset,get the mean of data
# BM — bussiness month end frequency
apple_month = apple.resample("BM").mean()
apple_month.head()
O nome completo de BM é Bussiness Month, que significa mês comercial. É denominado DataOffset em Pandas. Além de mês, também fornece ano, dia, segundo, hora, minuto ... etc. como unidades de amostragem, é claro, também pode ser personalizado
Para obter detalhes específicos sobre o deslocamento de dados, consulte: https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases;
1.6, calcule o número de dias entre a data mais antiga e a última data na lista de tempo
(apple.index.max()-apple.index.min()).days
#
12261
2. Conte os preços das ações da Apple, Tesla, IBM e LINKD nos últimos dois anos
2.1, pandas_datareader obtém dados
import pandas as pd
from pandas_datareader import data as web
import datetime as dt
start = dt.datetime(2019,1,1)
end = dt.datetime.today()
stocks = ['APPLE','TSLA','IBM','LNKD']
df = web.DataReader(stocks,'yahoo',start,end)
df
Antes de usar, certifique-se de que o pacote pandas_datareader foi instalado com sucesso. Este pacote nos ajuda a obter as informações de estoque de cada empresa nos últimos dois anos diretamente através do rastreador. Os dois datetimes start e end são usados para limitar o tempo.
Os resultados mostram que parece que este método não consegue obter os preços das ações da Apple e LINKD (mas não afeta, porque aqui é principalmente para aprender o uso de datetime em Pandas)
2.2, obter dados de estoque
vol = df['Volume']
vol
** 2.3, crie uma nova coluna, representando semana, ano **
A análise de cluster será feita mais tarde, e os benchmarks de cluster são semana, ano, então duas colunas (semana, ano) de dados precisam ser criadas com antecedência
vol['week'] = vol.index.week
vol['year'] = vol.index.year
vol.head()
2.4, agrupamento agrupamento por agrupamento (semana primeiro, depois ano)
week = vol.groupby(['week','year']).sum()
week.head()
Desta forma, é possível comparar de forma clara, o valor total das mudanças de estoque de cada empresa para cada semana de 2019 a 2020.
Ok, esse é todo o conteúdo deste artigo; finalmente, obrigado a todos pela leitura!
Referência:
1, https: //pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases
* 2 , https: //github.com/guipsamora/pandas_exercises/blob/master/09_Time_Series/Getting_Financ