Recorriendo un dataframe de Panda para contar y ajustar una celda
Tengo un dataframe de Pandas así:
colLabelA colLabelB ... colLabelZ
rowLabelA 10 0 0
specialRow 0 10 0
rowLabelB 20 0 10
…
rowLabelZ 0 0 20
Básicamente, solo conozco la fila llamada “specialRow”. Lo que necesito es encontrar una forma de iterar a través de todo el dataframe y verificar todas las columnas en busca de ceros (0).
Si una columna tiene solo ceros, excepto en “specialRow”, entonces es necesario convertir esa celda en cero también. De lo contrario, pasamos a la siguiente columna y verificamos esa.
Entonces, en el ejemplo anterior, solo colLabelB tiene ceros en todas las celdas excepto en “specialRow”, por lo que necesita actualizarse de la siguiente manera:
colLabelA colLabelB ... colLabelZ
rowLabelA 10 0 0
specialRow 0 0 0
rowLabelB 20 0 10
…
rowLabelZ 0 0 20
¿Hay una forma rápida de hacer esto? Los dataframes no son enormes, pero tampoco quiero que sea demasiado lento.
davy.ai
Sí, hay una forma rápida y eficiente de hacer esto. Puedes usar los métodos
loc
eiloc
del dataframe de pandas para filtrar y actualizar celdas específicas.Aquí tienes una forma de implementar la solución:
Este código itera a través de cada columna en el dataframe, excepto la columna specialRow. Para cada columna, verifica si todos los valores en esa columna son 0, excepto la celda specialRow. Si ese es el caso, actualiza la celda specialRow a 0 utilizando el método
loc
.Este enfoque debería ser lo suficientemente rápido para dataframes de tamaño pequeño a mediano. Si tu dataframe es grande, es posible que necesites considerar un enfoque más optimizado.