"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo insertar con éxito una lista en una celda de marco de datos en Python?

¿Cómo insertar con éxito una lista en una celda de marco de datos en Python?

Publicado el 2024-11-07
Navegar:124

How to Successfully Insert a List into a DataFrame Cell in Python?

Insertar una lista en una celda en un marco de datos

Cuando se trata de datos escasos en Python pandas, puede resultar complicado insertar listas en celdas específicas. Intentar realizar este tipo de operaciones utilizando métodos comunes como df.ix[1,'B'] = abc a menudo genera errores debido a longitudes de clave que no coinciden.

Soluciones y limitaciones alternativas

Intentos de solucionar el problema error al encerrar la lista entre corchetes adicionales (por ejemplo, df.ix[1,'B'] = [abc]) o al usar representaciones de cadena (por ejemplo, df.ix[1,'B'] = ', '.join (abc)) no son satisfactorios, ya que introducen elementos adicionales o alteran la estructura de datos prevista.

Usar df.at para la inserción de listas

Un enfoque más eficaz es utilizar df.at en lugar de df.ix o df.loc. df.at se dirige específicamente a una sola celda, eliminando la ambigüedad que puede provocar los errores antes mencionados.

import pandas as pd

# Create a dataframe with mixed data types
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

# Insert a list into cell 1B
df.at[1, 'B'] = ['m', 'n']

print(df)

Esta operación inserta exitosamente ['m', 'n'] en la celda 1B sin ningún error.

Garantizar la compatibilidad del tipo D de columna

Es importante tener en cuenta que la columna en la que desea insertar la lista debe tener su tipo d establecido en 'objeto'. Si la columna tiene un tipo de letra diferente, como 'int64', se producirá un error. Para solucionar este problema, puede convertir el tipo de columna antes de intentar la inserción:

df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [1,2,3]})
df['B'] = df['B'].astype('object')

# Now, list insertion will work as expected
df.at[1, 'B'] = [1, 2, 3]
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3