Python/Pandas Tutorial

[Python] Pandas Tutorial :: Drop row or column in pandas DataFrame

슈퍼짱짱 2020. 9. 22. 14:50
반응형

2020/09/18 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: pandas란? 데이터프레임이란? 시리즈란?

2020/09/19 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: read csv, txt file with pandas

2020/09/21 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: Create Data Frame with Dictionary, List

2020/09/21 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: Save Pandas Data Frame to CSV file

2020/09/21 - [Python/Pandas Tutorial] - [Python] Pandas Tutorial :: Filtering(Selecting) rows, columns in pandas DataFrame

 

판다스 데이터프레임에서 행, 열 삭제하기

0. import pandas library

 

import pandas as pd

 

1. Create DataFrame

 

friends = [{'name' : 'John','age' : 15, 'job' : 'student'},
           {'name' : 'Jenny','age': 25, 'job': 'developer'},
           {'name' : 'Nate','age': 30, 'job': 'teacher'}]
df = pd.DataFrame(friends,
                  index = ['one','two','three'],
                  columns=['name','age','job'])

 

> df

 

        name  age        job
one     John   15    student
two    Jenny   25  developer
three   Nate   30    teacher

 

2. Drop row

2-1. Drop row by index (integer position)

 

인덱스로 row를 삭제하는 방법은 df.drop(df.index[---]) 에서 --- 에 삭제하고자 하는 row의 인덱스를 넣어주면 된다.

예를 들어, 첫 번째, 세 번째 row 를 삭제하는 코드는 다음과 같다.

 

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

 

      name  age        job
two  Jenny   25  developer

 

단, 주의할 점은 해당 결과를 다시 할당해 주지 않으면 df에는 아무런 변화도 없다.

 

> df

 

        name  age        job
one     John   15    student
two    Jenny   25  developer
three   Nate   30    teacher

 

다음 코드 처럼 삭제된 결과를 다시 할당해 주거나,

inplace = True 를 입력해주면 재할당 없이도 삭제된 결과가 자동 할당된다.

 

df = df.drop(df.index[[0,2]])
df.drop(df.index[[0,2]], inplace = True)

 


2-2. Drop row by index name

 

위치가 아니라 인덱스 이름으로 삭제하는 방법은 다음과 같다.

예로 첫 번째, 세 번째 행을 삭제하는 코드이다.

 

> df.drop(['one','three'])

 

      name  age        job
two  Jenny   25  developer

 

마찬가지로 결과를 재할당 해주거나, inplace = True 로 지정해 주지 않으면 기존 테이블에는 변화가 없다.

 


2-3. Drop row by colum conditions

 

나이가 20세 이하인 row 삭제

 

> df[df.age > 20]

 

        name  age        job
two    Jenny   25  developer
three   Nate   30    teacher


3. Drop column

컬럼을 삭제하는 방법도 행을 삭제하는 방법과 거의 똑같다. axis = 1 만 지정해 주면 된다.

 

> df.drop('age', axis = 1)

 

        name        job
one     John    student
two    Jenny  developer
three   Nate    teacher

 


참고

 

www.youtube.com/watch?v=aRtpdjzRWeQ&list=PLVNY1HnUlO25etNe08s1H1nIIbbZdJwxA&index=6

반응형