Eu tenho um DataFrame de pandas com 4 colunas e quero criar um novo DataFrame que tenha apenas três das colunas. Esta pergunta é semelhante a: Extrair colunas específicas de um quadro de dados, mas para pandas e não R. O código a seguir não funciona, gera um erro e certamente não é a maneira pandasnic de fazê-lo.
import pandas as pd
old = pd.DataFrame({'A' : [4,5], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]})
new = pd.DataFrame(zip(old.A, old.C, old.D)) # raises TypeError: data argument can't be an iterator
Qual é a maneira pandasnic de fazer isso?
fonte
old[['A']].copy()
, os colchetes duplos são necessários para criar um novo quadro de dados. Observe queold['A'].copy()
apenas criará uma série.A maneira mais fácil é
.
fonte
Outra maneira mais simples parece ser:
onde
old.column_name
lhe dará uma série. Faça uma lista de todas as séries de colunas que você deseja manter e passe-a para o construtor DataFrame. Precisamos fazer uma transposição para ajustar a forma.fonte
Forma funcional genérica
Específico para o seu problema acima
fonte
Se você deseja ter um novo quadro de dados, então:
fonte
Até onde eu sei, você não precisa necessariamente especificar o eixo ao usar a função de filtro.
retorna o mesmo quadro de dados que
fonte
colunas por índice:
fonte