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.

Convertir la función agregativa R a python.

Estoy preprocesando mis datos ahora en R y luego los importo a Python, pero sería más conveniente si pudiera hacer todo en Python. ¿Alguien sabe cómo convertir el siguiente código a Python?

aggregate(mrna[,c(2:178)],by=list(mrna$GeneSymbol), FUN=function(x) x=max(x))

¡Gracias!

Edit:
Ejemplo de mrna

GeneSymbol TCGA.2J.AAB1.01A TCGA.2J.AAB4.01A TCGA.2J.AAB6.01A TCGA.2J.AAB8.01A TCGA.2J.AAB9.01A
   A1BG          81.9122          56.7551          82.5497          56.9307         105.7878
    A1CF          25.3659          53.4512           8.1871          33.8425          21.4362
 GGACT         180.4976         111.0774         163.1228         185.8143         166.7095
    A2M       19703.8049       15837.8241        8517.4444       14413.9130       24311.7792
 A2ML1          85.8537           0.0000        1815.7895          16.9213         642.0150
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, puedes usar pandas en python para lograr el mismo resultado que el código en R. Aquí está el código equivalente en python:

    import pandas as pd
    
    # Lee el archivo mrna
    mrna = pd.read_csv('mrna.csv')
    
    # Grupo por GeneSymbol y aplica la función max a las columnas 2 a 178.
    mrna.groupby('GeneSymbol').apply(lambda x: x.iloc[:, 1:179].max(axis=0))
    

    En el código anterior, primero leemos el archivo mrna usando la función read_csv de pandas. Luego, usamos el método groupby para agrupar los datos por GeneSymbol y aplicamos la función max a las columnas 2 a 178 utilizando una función lambda. La función iloc se usa para seleccionar las columnas de interés ([1:179]), y la función max se aplica fila por fila (axis=0) a cada grupo.

    La salida será un dataframe de pandas con el índice como GeneSymbol y las columnas 2 a 178, y los valores como los valores máximos para cada grupo.

Comments are closed.