Pandas

Sam (토론 | 기여)님의 2021년 4월 29일 (목) 00:32 판 (→‎시리즈. Series)

1 개요

판다스. 금융데이터 분석을 목적으로 개발됨. panel data와 python data analysis에서 유래했다. 별칭은 pd.

C언어로 작성되어 처리속도가 빠르다.

Series라는 1차원 자료구조와 DataFrame이라는 2차원 자료구조를 이용해 데이터를 다룬다.

내용이 상당히 방대해 세분해야 할 듯하다;;

2 시리즈. Series

리스트와 달리, 인덱싱 값을 지정할 수 있다.

from pandas import Series

의도 방법
선언 시리즈명 = Series([1,2,3,4,5], index=[1,2,3,4,5])
자료접근 시리즈명[인덱스]
인덱스 리스트 얻기 시리즈명.index
자료 리스트 얻기 시리즈명.values

2.1 연산

시리즈끼리 더하면 같은 인덱스를 가진 값들끼리 더해진다.

2.2 데이터 추가.

시리즈[인덱스]=값 혹은 시리즈=시리즈.append(더할시리즈) 형태로 추가 가능.

2.3 값에 접근하기.

시리즈.loc[인덱스] 는 해당 인덱스의 데이터를 가리킨다.

시리즈.iloc[정수인덱스] sms 0, 1, -1 따위의 정수 순서에 해당하는 값을 불러온다.

인덱스가 복수일 땐 시리즈로 반환한다.

시리즈.values[정수인덱스] 복수일 땐 배열로 반환한다.

2.4 삭제.

시리즈=시리즈.drop(인덱스)

의도 설명 방법
시리즈 합치기 df = pandas.DataFrame({'행이름': 시리즈, '행이름2': 다른df['행이름']}) 형태로 합치면 해당 인덱스에 대해 빈 값은 NaN으로 처리되어 합쳐진다. df = pandas.DataFrame({'행이름': 시리즈, '행이름2': 다른df['행이름']})



2.5 결측치 처리

NaN 처리.

fillna() 함수를 사용한다.

df = df.fillna(method='옵션')

옵션 설명
bfill(backward) 뒤에 있는 값으로 NaN을 덮어쓴다. 마지막 데이터가 NaN이라면 처리 불가
ffill(foreward) 앞의 있는 값으로 덮어쓴다. 처음 데이터가 NaN이면 처리 불가.

따라서 위의 옵션을 둘 다 써서 빈틈이 없게 만드는 게 일반적.


dropna() 함수로 NaN이 있는 행을 제거하는 방법도 있다.

2.6 이외 활용

의도 방법 설명
순위 얻기 내장함수인 .rank()를 사용한다.

ascending=False 옵션을 줄 수 있다.

df['열이름'].rank()
df.pct_change()  # 일간 변동률?? 뭐하는 거지?