es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Extrayendo/eliminando filas de series temporales sin utilizar información de índice.

Tengo un problema sencillo. Quiero obtener un subconjunto de una serie de tiempo con una cierta condición que no dependa del índice de tiempo. Tengo un conjunto de datos muy grande, solo estoy dando un pequeño ejemplo para que mi problema sea comprensible.

Quiero un conjunto de datos que no contenga los valores de row_num ‘1’ y ‘5’,
La salida debería ser

             row_num  marks

2016-01-02 2 98
2016-01-01 3 95
2016-01-01 4 90
2016-01-03 6 80
2016-01-04 7 20

Pero mi problema es que cuando intento eliminar, siempre lo hago por índice y elimino todos los índices de 2016-01-01 y 2016-01-02.
No puedo extraer manualmente este subconjunto porque el tamaño de los datos es muy grande y hay muchos índices duplicados. ¿Cómo puedo resolver este problema?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para resolver este problema, puedes utilizar la indexación booleana para filtrar las filas que no cumplen con tu condición. Aquí tienes un ejemplo de código utilizando pandas:

    import pandas as pd
    
    # crear el dataframe original
    data = {'row_num': [1, 2, 3, 4, 5, 6, 7],
            'marks': [99, 98, 95, 90, 40, 80, 20],
            'date': ['2016-01-01', '2016-01-02', '2016-01-01', '2016-01-01',
                     '2016-01-02', '2016-01-03', '2016-01-04']}
    df = pd.DataFrame(data, columns=['row_num', 'marks', 'date'])
    
    # filtrar las filas basadas en la condición
    condition = (df['row_num'] != 1) & (df['row_num'] != 5)
    filtered_df = df[condition]
    
    # imprimir el dataframe filtrado
    print(filtered_df)
    

    Este código primero crea el dataframe original con los datos dados. Luego, crea una condición booleana para filtrar las filas que tienen row_num igual a 1 o 5. Finalmente, utiliza esta condición para filtrar el dataframe original y crear un nuevo dataframe que contiene solo las filas que cumplen con la condición. El nuevo dataframe se imprime en la consola.

    Ten en cuenta que en este ejemplo, suponemos que la columna de fecha no se utiliza para la condición de filtrado. Si la condición también involucra la columna de fecha, puedes modificar la condición booleana en consecuencia.

Comments are closed.