"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como inserir listas em células DataFrame do Pandas sem erros?

Como inserir listas em células DataFrame do Pandas sem erros?

Publicado em 2024-11-06
Navegar:468

How to Insert Lists into Pandas DataFrame Cells Without Errors?

Inserindo listas em células do Pandas

Problema

Em Python, tentar inserir uma lista em uma célula de um DataFrame do Pandas pode resultar em erros ou resultados inesperados. Por exemplo, ao tentar inserir uma lista na célula 1B de um DataFrame df:

df = pd.DataFrame({'A': [12, 23], 'B': [np.nan, np.nan]})
abc = ['foo', 'bar']

As seguintes tentativas de inserir a lista abc em 1B, mas produzem erros ou inserção incorreta:

  1. df.ix[1 ,'B'] = abc - Erro: deve ter chaves e valores len iguais ao definir com um iterável
  2. df.ix[1,'B'] = [abc] - Insere uma lista com um elemento: [['foo', 'bar']]
  3. df.ix[1,'B'] = ', '.join(abc) - Insere uma string: "foo, bar"
  4. df.ix[1,'B'] = [', '.join(abc)] - Insere uma lista com um elemento: ['foo, bar']

Solution

Para inserir listas nas células de um DataFrame sem erros, use o método at, que sempre se refere a um único valor:

df.at[1, 'B'] = ['foo', 'bar']

Isso irá inserir a lista abc em 1B conforme esperado:

    A  B
0  12  NaN
1  23  ['foo', 'bar']

Observe que a coluna DataFrame deve ter dtype=object para permitir a inserção de lista. Por exemplo:

df['B'] = df['B'].astype('object')
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3