Selección de rangos de fechas en DataFrames

publicado por: Anonymous

Dispongo del siguiente DataFrame
introducir la descripción de la imagen aquí

La siguiente sentencia debería fitrarme correctamente los valores entre dos fechas.

# filtrando sólo del 2018-07-26 al 2018-08-02
df_selec['2018-07-26':'2018-08-02']

Sin embargo, me devuelve

Empty DataFrame
Columns: [cierres, Retornos, Retornos_acum, var_diaria, rend_diario, tend, prod_mov, pronostico, MA7, MA30, MA90, MA120]
Index: []

Esta otra forma de filtrar

# Seleccionar entre dos fechas del índice 
df_selec[(df_selec['Date'] > '2018-07-30') & (df_selec['Date'] < '2018-08-02')]

Me devuelve

KeyError: 'Date'

Si ahora hacemos lo mismo con un DataFrame conseguido de Yahoo, la selección se realiza correctamente

# Creando una serie de tiempo de las acciones de WFT desde yahoo finance
wft = web.DataReader("WFT", 'yahoo', '2000-1-1', '2018-8-30')
# filtrando sólo del 2016-02-04 al 2016-02-18
wft['2016-02-04':'2016-02-18']

¿Dónde está mi error? ¿Qué es lo que no entieno?

solución

Cuando las fechas son el índice del df, podemos seleccionar cotizaciones de varias maneras.
Opción 1.

# Enero de 2018
df_analisis = df_selec.loc["2018-1"]
df_analisis[:3]

Opción 1

# Seleccionar cotizaciones en un período de tiempo
df_selec.loc[ '2018-01-02' : '2018-01-29' ] 

Opción 3.

# Seleccionar cotizaciones en un período de tiempo
df_selec.loc[pd.Timestamp('2017-01-02'):pd.Timestamp('2017-01-31')] 

Opción 4.

# Se seleccionan los datos desde el 2013-04-14 a 2013-04-18
# Se crean las fechas con la librería datetime
fecha_1 = dt.datetime(2017, 1, 2)
fecha_2 = dt.datetime(2018, 10, 11)

# Filtro por fecha
df_analisis = df_selec.loc[fecha_1: fecha_2]
df_analisis[:3]

Opción 5.

    # Seleccionar un rango de fechas
    start = "2017-01-02"
    end = dt.datetime.now()
    df_analisis = df_selec[start:end]
    df_analisis[:3]
Cuando las fechas estan en una columna.
Opción 1.
aux = df_selec[(df_selec['Date'] > "2017-01-01") & (df_selec['Date'] <= "2018-10-11")]
df_analisis = aux.set_index("Date")
df_analisis [:3]
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *