팬더에서 데이터 프레임의 처음 세 행을 삭제하십시오.


177

팬더에서 데이터 프레임의 처음 세 행을 삭제해야합니다.

df.ix[:-1]마지막 행을 제거한다는 것을 알고 있지만 첫 번째 n 행을 제거하는 방법을 알 수 없습니다.


read_csv / read_html의 경우 예를 들어 header=3생성자 인수를 사용하여 해당 행을 헤더 행으로 설정할 수 있습니다 . stackoverflow.com/a/51822697/191246
ccpizza

답변:


263

사용 iloc:

df = df.iloc[3:]

처음 세 행이없는 새로운 df를 제공합니다.


1
원래 질문에서 처음 3 행을 대신 제거하지 않습니까?
tagoma

6
아뇨. 슬라이스의 시작 위치는 항상 포함됩니다.
bdiamante

누구나이 작업을 수행하는 방법을 알고 groupby()있습니까? 이것은 작동하지만 인덱스에서 중복 열을 반환합니다df=pd.DataFrame({'v':np.arange(10).tolist()*2,'g':['a']*10+['b']*10});df.groupby('g').apply(lambda x: x.iloc[3:])
citynorman

예를 들어, 3 행에서 9 행으로 삭제하려면 어떻게 하시겠습니까? df=df.iloc[3:9]?
MK

1
이 접근 방식을 사용하는 경우 @MK와 함께 사용할 수 있습니다 pd.concat(). 같은 것 df2 = pd.concat([df.iloc[:3],df.iloc[10:]]).
bdiamante 2016 년

100

더 명확한 방법은 drop을 사용하는 것입니다.

구문은 다음과 같습니다.

df.drop(label)

그리고 @tim과 @ChaimG가 지적한 것처럼, 이것은 제자리에서 수행 할 수 있습니다.

df.drop(label, inplace=True)

이를 구현하는 한 가지 방법은 다음과 같습니다.

df.drop(df.index[:3], inplace=True)

그리고 다른 "제자리에"사용 :

df.drop(df.head(3).index, inplace=True)

5
drop추가 할당없이 현장에서 계산할 수도 있습니다. 더 빠르고 간단합니다!
tim

1
Tim의 아이디어를 확장하기 위해 예 :df.drop(label, inplace=True)
ChaimG

인덱스 0으로 인해 구현 제안에서 4 행을 삭제한다고 생각합니다.
Daniel Morgan

1
@DanielMorgan 파이썬 범위가 반으로 열려 있기 때문에 그렇지 않습니다. 그 이유에 관해서는 또 다른 질문입니다. stackoverflow.com/questions/4504662/… 또는 quora.com/…을
drexiya

2
@ 팀에 따르면 , inplace작업은하지 빠릅니다. 또한 코드가 inplace매개 변수 가 없을 때 읽기가 더 쉽다는 의견이 있습니다.
toto_tico


6

파이썬 슬라이싱을 사용할 수 있지만 제자리에 있지는 않습니다.

In [15]: import pandas as pd
In [16]: import numpy as np
In [17]: df = pd.DataFrame(np.random.random((5,2)))
In [18]: df
Out[18]:
          0         1
0  0.294077  0.229471
1  0.949007  0.790340
2  0.039961  0.720277
3  0.401468  0.803777
4  0.539951  0.763267

In [19]: df[3:]
Out[19]:
          0         1
3  0.401468  0.803777
4  0.539951  0.763267

제자리에서 pandas무엇을 의미하지 않습니까?
cryanbhu

5
df.drop(df.index[[0,2]])

팬더는 0부터 시작하는 번호 매기기를 사용하므로 0은 첫 번째 행, 1은 두 번째 행, 2는 세 번째 행입니다.


4

간단한 방법은 tail (-n)을 사용하여 처음 n 개의 행을 제거하는 것입니다.

df=df.tail(-3)


0

inp0 = pd.read_csv ( "bank_marketing_updated_v1.csv", skiprows = 2)

또는 기존 데이터 프레임에서 수행하려는 경우

단순히 다음 명령을 수행

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.