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.

¿Hay alguna forma de usar Python Pandas para restar una fila específica de otra fila?

Parte de mi código que está causando problemas abajo. Abro un CSV y quiero restar la primera fila de la última fila y luego agregarla a un nuevo archivo. Me da un error KeyError: 96 cuando lo intento. Sé que el problema es df[96]-df1 pero no estoy seguro de por qué está mal, también he intentado df[96,:] – df[1,:]

df abre un archivo csv que parece una descripción de encabezado con números en cada columna (30 columnas)

df = pd.read_csv(‘nombredelarchivo’)

listadediccionarios = []

nuevasuma = df[96]-df[1] # Quiero restar la fila 1 (después del encabezado) de la fila 96 (o cualquier otra fila final)

listadediccionarios.append(nuevasuma)

Una cosa, sin embargo, quiero que la salida sea en formato de lista para que pueda agregar otro valor en el primer valor de la lista. Entonces, la salida sería en formato de lista, por ejemplo listoutput = [-5, 3, 2] y luego puedo ir a listoutput[0] = variabledefechacorriente

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando restar la primera fila de la última fila de tu archivo CSV. El problema es que df[96] está tratando de acceder a la fila número 96 de tu dataframe, la cual no existe. Puedes usar df.iloc[-1] para acceder a la última fila de tu dataframe.

    Por lo tanto, puedes usar el siguiente código para restar la primera fila de la última fila y agregarla a un nuevo archivo:

    dictionarylist = []
    newsum = df.iloc[-1] - df.iloc[1] # Restar la fila 1 (después del encabezado) de la última fila
    dictionarylist.append(newsum)
    

    Para obtener la salida en formato de lista, puedes usar el método tolist():

    listoutput = newsum.tolist()
    listoutput[0] = current_date_variable 
    

    Esto debería darte la salida deseada.

Comments are closed.