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