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.
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.
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.
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]
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