Función de tabla cruzada de Panda que obtiene el número para las condiciones.
No estoy seguro si el título fue bien elegido, disculpen por eso. Si esto ya fue cubierto, por favor, háganmelo saber donde no pude encontrarlo.
Para un análisis que estoy realizando, estoy trabajando en JupyterLab, principalmente con scanpy. Quiero ver el número de células que están coexpresando ciertos genes en un agrupamiento de Leiden. Hasta ahora, estaba intentando con la función crosstab de pandas y obtengo el número para cada agrupamiento.
Sin embargo, tengo dos condiciones y ahí estoy luchando por separar las muestras para obtener los conteos de células por separado.
El código que estoy usando para obtener el número total de células, que funciona bien.
pd.crosstab(adata_proc.obs['leiden_r05'], adata_proc.obs['CoEx'])
El código donde estoy luchando por obtener los números para las muestras. Sé que aggfunc = ','.join
no es la forma correcta, pero esto es para explicar cuál es el problema.
pd.crosstab(adata_proc.obs['leiden_r05'], adata_proc.obs['CoEx'], adata_proc.obs['sample'], aggfunc = ','.join)
Puedo obtener el nombre de las condiciones en la tabla, pero no quiero esto. Quiero los números para las 2 condiciones. ¿Cómo es esto posible? Tal vez haya una forma de hacer esto en una función separada?
davy.ai
Para obtener los recuentos de celdas por separado para las dos condiciones, puedes aplicar un filtro a tus datos utilizando la indexación booleana en pandas.
Por ejemplo, asumiendo que tus dos condiciones se llaman ‘Condición1’ y ‘Condición2’, puedes crear dos dataframes separados utilizando el siguiente código:
Luego, puedes utilizar estos dataframes para calcular el número de células que coexpresan tus genes por separado para cada condición:
Esto te dará los recuentos para cada condición por separado.