"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 adicionar com eficiência várias colunas a um DataFrame do Pandas simultaneamente?

Como adicionar com eficiência várias colunas a um DataFrame do Pandas simultaneamente?

Publicado em 2024-11-08
Navegar:558

How to Efficiently Add Multiple Columns to a Pandas DataFrame Simultaneously?

Adicionando várias colunas a um DataFrame do Pandas simultaneamente

Na manipulação de dados do Pandas, adicionar com eficiência várias novas colunas a um DataFrame pode ser uma tarefa que requer uma solução elegante. Embora a abordagem intuitiva de usar a sintaxe da lista de colunas com um sinal de igual possa parecer simples, ela pode levar a resultados inesperados.

O Desafio

Conforme ilustrado no exemplo fornecido, a sintaxe a seguir falha ao criar as novas colunas conforme pretendido:

df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]

Isso ocorre porque o Pandas exige que o lado direito da atribuição seja um DataFrame ao usar a sintaxe da lista de colunas. Valores escalares ou listas não são compatíveis com esta abordagem.

Soluções

Vários métodos alternativos oferecem soluções viáveis ​​para adicionar várias colunas simultaneamente:

Método 1: Atribuições individuais Usando a descompactação do iterador

df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3

Método 2: expandir uma única linha para corresponder ao índice

df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)

Método 3: Combine com DataFrame temporário usando pd.concat

df = pd.concat(
    [
        df,
        pd.DataFrame(
            [[np.nan, 'dogs', 3]], 
            index=df.index, 
            columns=['column_new_1', 'column_new_2', 'column_new_3']
        )
    ], axis=1
)

Método 4: Combine com DataFrame temporário usando .join

df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))

Método 5: usar dicionário para DataFrame temporário

df = df.join(pd.DataFrame(
    {
        'column_new_1': np.nan,
        'column_new_2': 'dogs',
        'column_new_3': 3
    }, index=df.index
))

Método 6: Use .assign() com argumentos de múltiplas colunas

df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)

Método 7: criar colunas e, em seguida, atribuir valores

new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist()   new_cols)    # add empty cols
df[new_cols] = new_vals        # multi-column assignment works for existing cols

Método 8: múltiplas atribuições sequenciais

df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3

A escolha do método mais apropriado dependerá de fatores como o tamanho do DataFrame, o número de novas colunas a serem adicionadas e os requisitos de desempenho da tarefa. No entanto, essas técnicas capacitam os usuários do Pandas com diversas opções para adicionar com eficiência várias colunas aos seus DataFrames.

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