Para read_csv / read_html, você pode usar, por exemplo, o header=3argumento construtor que definirá essa linha como a linha do cabeçalho: stackoverflow.com/a/51822697/191246
isso não remove as 4 primeiras linhas em vez das 3 primeiras na pergunta original?
Tagoma
6
Não, não faz. A posição inicial da fatia é sempre incluída.
Bdiamante
Alguém sabe como fazer isso em um groupby()? Isso funciona, mas retorna colunas duplicadas no índicedf=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
citynorman
Então, se você deseja excluir da linha 3 para a linha 9, por exemplo, como você faria isso? df=df.iloc[3:9]?
MK
1
@MK se estiver usando essa abordagem, poderá usá-la em combinação com pd.concat(). Algo como df2 = pd.concat([df.iloc[:3],df.iloc[10:]]).
bdiamante 26/06/19
100
Eu acho que uma maneira mais explícita de fazer isso é usar drop.
A sintaxe é:
df.drop(label)
E, como apontado por @tim e @ChaimG, isso pode ser feito no local:
@tim, de acordo com isso , as inplaceoperações não são mais rápidas. Além disso, é mais simples uma questão de opinião: acho mais fácil ler quando o código não possui inplaceparâmetros.
header=3
argumento construtor que definirá essa linha como a linha do cabeçalho: stackoverflow.com/a/51822697/191246Respostas:
Use
iloc
:lhe dará um novo df sem as três primeiras linhas.
fonte
groupby()
? Isso funciona, mas retorna colunas duplicadas no índicedf=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
df=df.iloc[3:9]
?pd.concat()
. Algo comodf2 = pd.concat([df.iloc[:3],df.iloc[10:]])
.Eu acho que uma maneira mais explícita de fazer isso é usar drop.
A sintaxe é:
E, como apontado por @tim e @ChaimG, isso pode ser feito no local:
Uma maneira de implementar isso pode ser:
E outro uso "no local":
fonte
drop
pode até ser calculado no local (sem atribuição extra). Mais rápido e mais simples!df.drop(label, inplace=True)
inplace
operações não são mais rápidas. Além disso, é mais simples uma questão de opinião: acho mais fácil ler quando o código não possuiinplace
parâmetros.n descarta as primeiras n linhas.
fonte
Você pode usar o python slicing, mas observe que ele não está no local.
fonte
pandas
?O Pandas usa numeração baseada em zero, então 0 é a primeira linha, 1 é a segunda linha e 2 é a terceira linha.
fonte
Uma maneira simples é usar tail (-n) para remover as primeiras n linhas
df=df.tail(-3)
fonte
inp0 = pd.read_csv ("bank_marketing_updated_v1.csv", skiprows = 2)
ou se você quiser fazer no quadro de dados existente
basta fazer o seguinte comando
fonte