Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

197
Vistas
Convierta cada fila de un marco de datos en una lista

Tengo un marco de datos como este:

 df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['aa', 'b', 'c']}) AB 0 1 aa 1 2 b 2 3 c

Quiero convertir cada fila de la columna B en una lista. Por ejemplo, mi resultado deseado es algo como esto:

 df_new AB 0 1 [aa] 1 2 [b] 2 3 [c]
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Creo que la solución de los comentarios es muy rápida:

 df['B'] = df['B'].map(lambda i: [i])

Más rápido es usar la comprensión de la lista:

 df['B'] = [[i] for i in df['B']]

Rendimiento :

 df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['as', 'b', 'c']}) #30k rows df = pd.concat([df] * 10000, ignore_index=True) In [93]: %timeit df['B'].apply(lambda x: x.split(',')) 11.1 ms ± 963 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) In [94]: %timeit df['B'].str.split() 13.1 ms ± 788 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) In [96]: %timeit df['B'].map(lambda i: [i]) 7.15 ms ± 54.8 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) In [97]: %timeit df['B'].apply(lambda i: [i]) 7.21 ms ± 48.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) In [98]: %timeit df['B'].str.split(',') 13.9 ms ± 1.46 ms per loop (mean ± std. dev. of 7 runs, 100 loops each) In [99]: %timeit [[i] for i in df['B']] 5.84 ms ± 73.3 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
over 4 years ago · Santiago Trujillo Denunciar

0

Puedes usar split para hacer cosas.

 import pandas as pd df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['a', 'b', 'c']}) df['B'] = df['B'].apply(lambda x: x.split(',')) print(df)
over 4 years ago · Santiago Trujillo Denunciar

0

Podrías usar apply :

 df['B'] = df['B'].apply(list) AB 0 1 [a] 1 2 [b] 2 3 [c]
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda