Hacer una lista después de agrupar en Pandas utilizando la función apply().
Tengo este dataframe:
c1 c2
0 B 1
1 A 2
2 B 5
3 A 3
4 A 7
Mi objetivo es hacer un seguimiento de los valores en la columna 2, según las letras de la columna 1 separadas por “:”. El resultado debe verse así:
c1 list
0 A 2:3:7<br>
1 B 1:5
¿Cuál es la forma más “pythonic” de hacer esto?
Actualmente puedo agrupar por la columna 1 y estoy intentando usar la función apply(), pero no sé cómo hacer el mapeo y crear esta lista en la nueva columna.
davy.ai
Para obtener la salida deseada, puede utilizar la función
groupby()
de pandas para agrupar los datos por valores en la columna 1 (c1), y luego utilizar la funciónapply()
para aplicar una función lambda a cada grupo. La función lambda puede convertir los valores en la columna 2 (c2) a una lista y luego concatenar las cadenas de los elementos de la lista separados por “:”. El paso final es restablecer el índice y cambiar el nombre de las columnas para que coincidan con la salida deseada.Aquí está el código para implementar esto:
Output:
Este código debería darle la salida deseada de manera pythonica utilizando funciones de pandas.