오늘은 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 데이터를 남겨놓겠습니다.
'정보 > 프로그래밍' 카테고리의 다른 글
프로그램 실행 속도를 개선하는 방법 (중복 연산 제거, 벡터 연산, 병렬 처리) (1) | 2024.04.06 |
---|---|
[Python, R] 사용자가 지정한 순서로 정렬하기 (4) | 2023.12.26 |
[Pandas] 데이터프레임 탐색 문법 및 사용법 정리 (0) | 2022.07.05 |
[Pandas] 데이터프레임 생성 문법 및 사용법 정리 (0) | 2022.07.01 |
[NumPy] 주요 기능 문법 및 사용법 정리 (0) | 2022.06.29 |