Processamento de dados do Pandas | Alguns usos do Datetime no Pandas!

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()

Snipaste_2020-07-26_23-30-33.png

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.

Snipaste_2020-07-26_23-37-50.png

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()

Snipaste_2020-07-26_23-46-23.png

** 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.

Snipaste_2020-07-26_23-47-36.png

1.4, classifique o índice

# Sort The DataFrame based on Date columns
apple.sort_index(ascending = True).head()

Snipaste_2020-07-26_23-51-12.png

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()

Snipaste_2020-07-26_23-53-05.png

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

Snipaste_2020-07-27_00-10-00.png

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)

Snipaste_2020-07-27_00-30-57.png

2.2, obter dados de estoque

vol = df['Volume']
vol

Snipaste_2020-07-27_00-37-02.png

** 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()

Snipaste_2020-07-27_00-40-59.png

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.

Snipaste_2020-07-27_00-46-45.png

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

Acho que você gosta

Origin blog.csdn.net/weixin_42512684/article/details/107735826
Recomendado
Clasificación