[ML] Pandas(Python Data Analysis Library)를 사용해보자
고성능 array 계산 라이브러리인 numpy와 통합하여, 강력한 “스프레드시트” 처리 기능을 제공하는 판다스에 대해서 좀 더 알아보자!
파이썬계의 엑셀이라고 생각하면 된다.
panel data 의 줄임말인 pandas는 파이썬의 데이터 처리의 사실상의 표준인 라이브러리입니다.
pandas는 파이썬에서 일종의 엑셀과 같은 역할을 하여 데이터를 전처리하거나 통계 처리시 많이 활용하는 피봇 테이블 등의 기능을 사용할 때 쓸 수 있습니다. pandas 역시 numpy를 기반으로 하여 개발되어 있으며, R의 데이터 처리 기법을 참고하여 많은 함수가 구성되어 있거 기존 R 사용자들도 쉽게 해당 모듈을 사용할 수 있도록 지원하고 있습니다.
설치하기
pip install pandas
csv파일 불러오기
이미 데이터 파일이 있다면, read_csv 함수를 통해서 읽어올 수 있다.
data_url = "링크"
df_data = pd.read_csv(data_url, sep='\s+', header=None)
sep = '\s+' 이면, 데이터를 표시할 때 s(single blank)를 +(여러번) 쓴다는 뜻이다.
data 새로 만들기
미리보기
df_data.head()
5개의 row가 보인다.
indexing: loc과 iloc
loc - index location
iloc - index position
column이 data의 특성을 표시하는 줄이라고 정의하면,
loc은 data 몇 줄을 뽑아오는 연산,
iloc은 특정 특성의 몇줄을 뽑아오는 연산이다.
예제를 통해서 알아보자
mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4}, {'a': 100, 'b': 200, 'c': 300, 'd': 400}, {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]
df = DataFrame(mydict)
df
column명 지정해주기
df_data.columns = ['이름', '나이', '성별']
transpose, 값 출력, csv로 변환
column별로 선택, index로 선택
index 재설정
data drop
series별 연산
series+dataframe 연산
lamdba, map, replace, apply, applymap 함수 쓰기
info
df_data.info()
데이터의 index개수
column정보, 데이터 개수, Dtype
memory usage 등의 정보를 보여준다.
head
df_data.head(5)
데이터에서 1부터 N까지의 row들의 정보를 보여준다.
describe
굉장히 다양한 기능이 있는 함수이다!
데이터 타입에 따라 달라지지만 float와 같은 numerical data인 column을 넣으면, count, mean, std, min, 25%, 50%, 75%, max까지 알려준다.
df_data['year'].describe()
unique
nunique
sum, mean, min, max, count, median, mad, var
isnull
sort_values
values_counts
df_data.values_count('user')
'user' column에서 user별로 count가 높은것부터 나열해준다.
df_data.values_count('user').index[:10]
index로 10개만 끊으면 가장 자주 나온 user의 value들이 담겨서 나온다.
corr, cov, corrwith
groupby
merge
filter하기
indexs = df_data.user == 53188
df_data.loc[indexs]