본문 바로가기

정보/프로그래밍

[Pandas] 데이터프레임 정렬, 선택, 삭제 문법 및 사용법 정리

오늘은 Pandas 모듈을 사용하여 데이터프레임을 정렬, 선택, 삭제하는 방법에 대해 알아보겠습니다.

데이터프레임 내의 데이터를 순서대로 정렬하고, 특정 데이터만 선택하고, 삭제할 수 있습니다.

[데이터프레임 생성]

df = pd.read_csv("stock_df.csv", encoding="CP949")

df

먼저 외부에서 다운로드한 자료로 데이터프레임을 생성해보았습니다.

 

 

데이터프레임 정렬


[PER 오름차순 정렬]

df.sort_values(by=["per"])

sort_values 함수를 통해 데이터를 순서대로 정렬할 수 있습니다.

함수 안의 by 변수를 통해 어떤 컬럼을 기준으로 정렬할지를 선택해 주셔야 제대로 정렬이 됩니다.


[PER 내림차순 정렬]

df.sort_values(by=["승차총승객수"], ascending=False)

ascending=True 변수를 넣으시면 내림차순 별로 정렬할 수 있습니다.

 

 

데이터프레임 선택


[시리즈 형태로 열 선택]

df["symbol"]

대괄호 안에 컬럼명을 넣음으로써 특정 컬럼 한 개의 데이터를 시리즈 형태로 나타낼 수 있습니다.


[데이터프레임 형태로 열 선택]

df[["symbol", "per"]]

대괄호를 두개 사용하면 특정 컬럼들의 데이터를 데이터프레임 형태로 나타낼 수 있습니다.

이 경우 시리즈 형태로 컬럼을 선택하는 것과는 달리 여러 개의 컬럼을 선택할 수 있습니다.


[데이터프레임 형태로 행 선택]

df[0:3]

인덱싱을 통해 데이터프레임의 특정 행만 나타낼 수 있습니다.

0번째부터 2번째 행까지의 데이터를 나타냅니다.


[정수형 인덱스 기반 인덱싱]

df.iloc[0:3, 0:2]

iloc 함수를 통해 정수형 인덱스를 넣어서 특정 행과 열을 인덱싱할 수 있습니다. 

iloc[인덱싱할 행 넘버, 인덱싱할 열 넘버] 형식으로 입력하면 됩니다.


[행, 열 이름을 통한 인덱싱]

df.loc["095570":"282330", "symbol":"per"]

loc 함수를 통해 특정 행과 열의 이름으로 인덱싱할 수 있습니다.

loc[인덱싱할 행 이름, 인덱싱할 열 이름] 형식으로 입력하시면 됩니다. 


[특정 조건을 만족하는 행 추출]

df[df["per"] >= 10]

df 뒤의 대괄호 안에 특정 조건을 입력함으로써 특정 조건을 만족하는 행을 추출할 수 있습니다.

위의 예시는 per 데이터가 10 이상인 값의 행들을 추출한 것입니다.

 

 

삭제


[행 삭제]

df.drop(["027410", "095570"])

drop 함수를 통해 특정 인덱스의 행을 삭제합니다.

위의 예시에서는 ticker가 027410, 095570인 행을 삭제합니다.

 

[열 삭제]

df.drop(["pbr", "dividend_yield"], axis=1)

drop 함수에 axis=1이라는 변수를 넣음으로써 특정 열을 삭제합니다.

axis변수 0은 행을, 1은 열을 의미하고 기본 값이 0이기 때문에 행 삭제 시에는 굳이 변수를 입력할 필요는 없습니다.

위의 예시에서는 열 이름이 pbr, dividend_yield인 열을 삭제합니다.

 


오늘은 Pandas 모듈을 사용하여 데이터프레임을 정렬, 선택, 삭제하는 방법에 대해 알아보았습니다.

 

코랩이나 주피터노트북에서 실습해보시길 바랍니다.

 

밑에 지금까지 예시로 사용한 csv 데이터를 남겨놓겠습니다.

stock_df.csv
0.03MB