목차
파이썬은 오픈 소스로 구성되어 있으며 이에 따라 수많은 라이브러리가 제공되고 있습니다. 이러한 라이브러리를 'Import'해 사용할 때 우리는 각 라이브러리를 객체화해서 메서드를 사용합니다. 물론, 객체지향의 의미를 모르면서 말입니다. 오늘은 메서드의 사용 형태에 대해서 잠시 알아보고, 리스트와 판다스에서 일반적으로 사용되는 메서드에 대해 정리해 보려고 합니다.
1. 메서드란?
파이썬에서 "메서드"는 객체(Object)의 행위(behavior)를 나타내는 함수(function)를 의미합니다. 객체(Object)는 클래스(Class)의 인스턴스(Instance)로, 클래스는 객체의 특징을 정의하는 템플릿(template)입니다. 클래스 내에 정의된 함수들이 메서드(Method)로서, 해당 클래스의 객체들이 공유하여 사용할 수 있는 동작을 정의합니다. 객체지향에 대한 자세한 내용은 아래를 참고하세요
https://lifelong-education-dr-kim.tistory.com/entry/파이썬-객체지향-프로그래밍의-5가지-주요-개념
메서드는 객체에 대해 특정한 동작을 수행하며, 객체의 상태(state)를 변경하거나 객체의 정보를 반환하는 등의 기능을 제공합니다. 메서드는 클래스 내에 정의되며, 객체를 통해 호출됩니다. 일반적으로 메서드는 다음과 같은 형식으로 호출됩니다.
객체명. 메서드명(인자)
예를 들어, 리스트(List) 객체는 append(), remove(), sort()와 같은 메서드들을 갖고 있어 리스트에 요소를 추가, 제거, 정렬하는 등의 작업을 수행할 수 있습니다. 또 다른 예로, 문자열(String) 객체는 upper(), lower(), replace()와 같은 메서드들을 갖고 있어 문자열을 대문자로 변환, 소문자로 변환, 문자열 내의 특정 문자를 다른 문자로 치환하는 등의 작업을 수행할 수 있습니다.
2. 판다스(Pandas)의 일반 메서드들
파이썬의 데이터 프레임은 데이터 처리 및 분석을 위한 효과적인 도구인데요. 데이터 프레임은 판다스(Pandas) 라이브러리에서 제공되는 자료구조로, 열과 행으로 이루어진 테이블 형태의 데이터를 다룰 수 있습니다. 데이터 프레임에서 제공되는 다양한 메서드를 사용하면 데이터를 처리하고 변형하는데 편리하게 사용할 수 있습니다. 이제 데이터 프레임에서 자주 사용되는 몇 가지 메서드에 대해 알아보겠습니다.
기본적으로 해당 메서드들은 데이터 프레임을 객체화한 이후 사용됩니다. 메서드들 중에는 위에 괄호가 있는 경우와 없는 경우가 있습니다. 괄호가 없는 메서드들은 아무런 인자 없이 사용되는 것이며, 괄호가 있는 경우는 괄호안에 인자들을 넣어 사용할 수가 있습니다.
pd = pd.DataFrame(data) # 객체화
pd.head() #head() 메서드 사용
pd.shape #shape 메서드 사용
pd.iloc[3, 4] #iloc[] 메서드 사용, 인자값 필요
head(): 데이터 프레임의 처음 5개 행을 반환하는 메서드입니다. 인자로 숫자를 넘겨주면 해당 숫자만큼의 행을 반환할 수도 있습니다.
tail(): 데이터 프레임의 마지막 5개 행을 반환하는 메서드입니다. 인자로 숫자를 넘겨주면 해당 숫자만큼의 행을 반환할 수도 있습니다.
info(): 데이터 프레임의 정보를 출력하는 메서드입니다. 데이터의 각 열의 데이터 타입, 결측치 여부, 메모리 사용량 등을 확인할 수 있습니다.
describe(): 데이터 프레임의 기술 통계 요약을 출력하는 메서드입니다. 각 열의 평균, 표준편차, 최소값, 25%, 50%, 75% 백분위수, 최대값 등을 확인할 수 있습니다.
shape: 데이터 프레임의 행과 열의 개수를 반환하는 속성입니다. (행 개수, 열 개수) 형태로 출력됩니다.
columns: 데이터 프레임의 열 이름을 반환하는 속성입니다. 열 이름들이 리스트 형태로 출력됩니다.
iloc[]: 데이터 프레임에서 특정 행과 열에 접근하는 메서드로, 정수 기반의 인덱싱을 사용합니다. df.iloc[row_index, col_index] 형태로 사용하며, 특정 행이나 열의 데이터를 선택할 수 있습니다.
loc[]: 데이터 프레임에서 특정 행과 열에 접근하는 메서드로, 라벨 기반의 인덱싱을 사용합니다. df.loc[row_label, col_label] 형태로 사용하며, 특정 행이나 열의 데이터를 선택할 수 있습니다.
drop(): 데이터 프레임에서 특정 행이나 열을 삭제하는 메서드입니다. df.drop(labels, axis=0 or 1, inplace=False) 형태로 사용하며, labels에는 삭제하고자 하는 행이나 열의 라벨을 넘겨주어야 합니다. `axis=0인 경우 행을 삭제하고, axis=1인 경우 열을 삭제합니다. inplace=True로 설정하면 원본 데이터 프레임을 수정하며, inplace=False`(기본값)인 경우 원본 데이터 프레임을 수정하지 않고 삭제된 데이터를 반환합니다.
drop_duplicates(): 데이터 프레임에서 중복된 행을 제거하는 메서드입니다. df.drop_duplicates(subset=None, keep='first', inplace=False) 형태로 사용하며, subset에는 중복을 검사할 열들의 이름을 리스트로 넘겨줄 수 있고, 기본값인 None인 경우 모든 열을 대상으로 중복을 검사합니다. keep은 중복된 행 중 어떤 행을 남길지를 결정하는 옵션으로, 'first', 'last', False 중 하나를 선택할 수 있습니다. inplace=True로 설정하면 원본 데이터 프레임을 수정하며, inplace=False(기본값)인 경우 원본 데이터 프레임을 수정하지 않고 중복이 제거된 데이터를 반환합니다.
fillna(): 데이터 프레임에서 결측치를 채우는 메서드입니다. df.fillna(value=None, method=None, inplace=False) 형태로 사용하며, value에는 결측치를 채울 값이나 딕셔너리를 넘겨줄 수 있고, method에는 결측치를 채우는 방법을 선택할 수 있습니다. 주요한 방법으로는 'ffill' (forward fill), 'bfill' (backward fill) 등이 있습니다. inplace=True로 설정하면 원본 데이터 프레임을 수정하며, inplace=False(기본값)인 경우 원본 데이터 프레임을 수정하지 않고 결측치가 채워진 데이터를 반환합니다.
groupby(): 데이터 프레임을 특정 열 기준으로 그룹화하는 메서드입니다. df.groupby(by, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs) 형태로 사용하며, by에는 그룹화할 열의 이름이나 열들의 리스트를 넘겨줄 수 있습니다. 그룹화된 데이터에는 여러 종류의 집계 함수를 적용할 수 있어 데이터 분석에 유용하게 사용됩니다.
3. 마치며
이 외에도 데이터 프레임에서 제공되는 다양한 메서드들이 있어 데이터 처리, 변형, 분석 등 다양한 작업을 수행할 수 있습니다. 이를 활용하여 데이터 프레임을 유연하게 다루어 데이터 분석 및 가공 작업을 효과적으로 수행할 수 있습니다. 다음에는 데이터 프레임의 통계값을 확인하는 메서드들에 대해 정리해 보려고 합니다.
댓글