[Turn] Procesamiento de datos de Pandas (5) - Procesamiento de formato de tiempo DataTime

Procesamiento de datos de Pandas (5) - Procesamiento de formato de tiempo DataTime!

 

Datatime es un tipo de datos de tiempo en Python. Es más conveniente convertir entre diferentes formatos de tiempo. Pandas también admite el mecanismo de datos DataTime, que se puede utilizar para lograr muchas funciones útiles, como

1. La función to_datetime () convierte la columna Serie en la lista de datos al tipo de fecha y hora,

#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), vuelva a muestrear los datos globales basados ​​en la columna de tiempo con freq como frecuencia, y calcule la suma de datos del segmento, la media, la varianza y otros indicadores; el índice de los datos originales en el siguiente ejemplo es el Formato de datos de tiempo de datos, use el mes como unidad de tiempo para encontrar el valor promedio de cada columna de datos

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

 

 

A continuación, se presentará brevemente cómo Pandas maneja los datos de DataFrame en función de algunos ejercicios.

1, operaciones to_datetime () y resample ()

1.1, leer datos

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 puede ver, la hora está en la columna de Fecha, pero no está en el formato estándar de fecha y hora. Debe formatearse.

 

 

1.2, conversión de formato de fecha y hora

#Convert the type to datetime
apple.Date = pd.to_datetime(apple.Date)
apple['Date'].head()

 

 

1.3, establezca la columna Fecha para indexar

apple = apple.set_index("Date")
# Set Index
apple.head()

Aunque la fecha se ha configurado como índice, la disposición de la hora no es clara. Los datos de fecha y hora se pueden ordenar directamente. Aquí se usa sort_index (ascendente = Verdadero) para completar la ordenación.

 

 

1.4, ordenar el índice

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

 

 

1.5, muestrea los datos por mes y obtén la media ()

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

 

 

El nombre completo de BM es Business Month, que significa mes comercial. Se llama DataOffset en Pandas. Además de mes, también proporciona año, día, segundo, hora, minuto, etc., como unidades de muestreo. Por supuesto, puede También se puede personalizar.

 

 

Para obtener detalles específicos sobre la compensación de datos, consulte: https://pandas.pydata.org/docs/user_guide/timeseries.html#timeseries-offset-aliases ;

1.6, calcule el número de días entre la fecha más temprana y la última en la lista de horas

(apple.index.max()-apple.index.min()).days
​
#
12261

2. Cuente los precios de las acciones de Apple, Tesla, IBM y LINKD en los últimos dos años.

2.1, pandas_datareader obtiene datos

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, asegúrese de que el paquete pandas_datareader se haya instalado correctamente. Este paquete nos ayuda a obtener directamente la información de stock de cada empresa en los últimos dos años a través del rastreador. Las dos fechas de inicio y finalización se utilizan para limitar el tiempo .

Los resultados muestran que parece que este método no puede obtener los precios de las acciones de Apple y LINKD (pero no afecta, porque aquí es principalmente para aprender el uso de la fecha y hora en Pandas).

 

 

 

2.2, obtener datos de stock

​
vol = df['Volume']
vol

 

 

2.3, crea una nueva columna, dicha semana, año

El análisis de conglomerados se realizará más tarde, y los puntos de referencia de los conglomerados son semana y año, por lo que es necesario crear dos columnas (semana, año) de datos por adelantado.

vol['week'] = vol.index.week
vol['year'] = vol.index.year
vol.head()

 

 

2.4, agrupación por agrupación (primera semana, luego año)

week = vol.groupby(['week','year']).sum()
​
week.head()

De esta forma, es posible comparar claramente, el valor total de las acciones de cada empresa cambia para cada semana de 2019 a 2020.

 

 

 

Bien, ese es todo el contenido de este artículo; finalmente, ¡gracias a todos por leer!

Referencia:

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_Financial_Data

Publicado el 31/12/2020

Supongo que te gusta

Origin blog.csdn.net/weixin_52071682/article/details/112460735
Recomendado
Clasificación