***< DataFrame이 제공하는 메소드 확인하는 코드 >**********************************************
◆ Pandas의 DataFrame은 매우 방대한 양의 메소드를 제공한다.
◆ list와 마찬가지로 dir()을 사용하되, Pandas 객체 특유의 수많은 내부 속성을 제외하고 주요 공개 메소드만 깔끔하게 확인하는 코드이다.
( 1 ) DataFrame 메소드 추출 프로그램
출력 결과가 많으므로 한눈에 보기 좋게 정렬하여 출력한다.
________________________________________________________________________________________
import pandas as pd
# 빈 데이터프레임 생성
df = pd.DataFrame()
# 1. dir()을 통해 모든 속성을 가져옵니다.
# 2. 언더바(_)로 시작하는 내부 속성을 제외합니다.
# 3. 소문자로 시작하는 '메소드/속성'만 필터링합니다 (보통 대문자는 에러 클래스 등임).
methods = [m for m in dir(df) if not m.startswith('_') and m[0].islower()]
print(f"Pandas DataFrame이 제공하는 주요 메소드/속성 개수: {len(methods)}개")
print("-" * 50)
# 가독성을 위해 5개씩 끊어서 출력
for i in range(0, len(methods), 5):
print(", ".join(methods[i:i+5]))
--------------------------------------------------------------------------------------------------------
결과 :
Pandas DataFrame이 제공하는 주요 메소드/속성 개수: 208개
--------------------------------------------------
abs, add, add_prefix, add_suffix, agg
aggregate, align, all, any, apply
applymap, asfreq, asof, assign, astype
at, at_time, attrs, axes, backfill
between_time, bfill, bool, boxplot, clip
columns, combine, combine_first, compare, convert_dtypes
copy, corr, corrwith, count, cov
( 2 ) DataFrame의 구조 개념
DataFrame은 단순히 리스트의 확장판이 아니라, Index, Columns, Values라는 세 가지 핵심 요소로 구성된 2차원 테이블 구조이다.
이 구조 때문에 리스트보다 훨씬 다양한 데이터를 조작하는 메소드를 가진다.
( 3 ) 카테고리별 주요 메소드 요약
카테고리 주요 메소드 및 속성
-----------------------------------------------------------------------------------------------
데이터 확인 head(), tail(), info(), describe(), shape, columns
데이터 선택 loc[], iloc[], at[], iat[], query()
통계/계산 mean(), sum(), count(), std(), corr(), abs()
결측치 처리 isnull(), dropna(), fillna(), isna()
변형/정렬 sort_values(), sort_index(), groupby(), pivot_table(), melt()
입출력 to_csv(), to_excel(), to_dict(), to_json()카테고리 주요 메소드 및 속성
-------------------------------------------------------------------------------------------------
***< DataFrame이 제공하는 속성만의 리스트 확인 코드 >**************************************
◆ Pandas에서 메서드(함수)를 제외하고 데이터를 설명하는 속성(Attributes)들만 따로 골라내는 것은 데이터 분석의 기초 체력을 다지는 좋은 방법이다다.
◆ 단순히 dir()을 사용하면 실행 가능한 메서드까지 모두 섞여 나오기 때문에, Python의 callable() 함수를 활용해 "호출할 수 없는(함수가 아닌) 요소"만 필터링하는 것이 핵심이다.
( 1 ) Pandas 속성 추출 프로그램
DataFrame 객체에서 메서드를 제외하고 순수하게 데이터의 상태를 나타내는 속성들만 리스트로 반환한다.
____________________________________________________________________________________________________
import pandas as pd
def get_only_attributes(obj):
# 1. dir()로 모든 요소를 가져옴
# 2. 언더바(_)로 시작하는 내부 요소 제외
# 3. callable()이 False인 것(호출 불가능 = 속성)만 필터링
attributes = [
attr for attr in dir(obj)
if not attr.startswith('_') and not callable(getattr(obj, attr))
]
print(f"[{type(obj).__name__} 객체의 주요 속성 리스트]")
for i, attr in enumerate(attributes, 1):
print(f"{i:2}. {attr}")
return attributes
# 테스트용 데이터프레임 생성
df = pd.DataFrame({'val': [10, 20]}, index=['a', 'b'])
# 속성 리스트 출력
attr_list = get_only_attributes(df)
--------------------------------------------------------------------------------------------------------------
( 2 ) 주요 속성 간 관계 이해하기
Pandas 객체는 인덱스, 컬럼, 실제 값이라는 세 가지 축을 중심으로 구성된다.
속성명 반환 타입 설명
-------------------------------------------------------------------------------
df.shape tuple (행 개수, 열 개수) 형태의 튜플
df.index Index 행의 레이블(이름) 정보
df.columns Index 열의 레이블(이름) 정보
df.dtypes Series 각 열의 데이터 타입 (int64, float64 등)
df.values ndarray 내부 데이터를 Numpy 배열 형태로 반환
df.siz int 전체 요소의 개수 (행 x 열)
df.empty bool 데이터가 비어있는지 여부
df.iloc Indexer 정수 위치 기반의 인덱싱 속성
df.loc Indexer 레이블 이름 기반의 인덱싱 속성
( 3 ) 속성과 메서드
▶ 속성 (Attributes): 객체가 가지고 있는 값이나 상태입니다. 괄호를 쓰지 않고 호출한다. (예: df.shape)
▶ 메서드 (Methods): 객체가 수행하는 동작입니다. 괄호를 붙여서 실행해야 한다. (예: df.head(), df.describe())