본문 바로가기

데이터분석 개발일지(스파르타코딩)

데이터분석_개발일지3

한동안 인턴생활과 자격증 시험을 병행해서 공부하다 보니 스파르타 코딩 클럽 수업을 제대로 듣지 못했다.

이미 완주를 한 상태이지만 3주 차부터 개발일지를 적지 않아서 다시 제대로 들어보며 적으려고 한다.

현재 자격증 시험은 다 끝났고, 인턴생활도 11월 30일이면 끝이 나서 지금부터 남는 시간에 개발일지를 쓸 것이다

 

스파르타 코딩 클럽에서 배운 데이터 분석 3주 차는 크게 4가지로 원하는 데이터 찾기, 정렬과 로직과 수치 정보의 결합, 상관관계 분석, 시각화 기초 수업을 했다.

 

정리

 

1.  원하는 데이터 찾기

 

이 부분은 가끔 헷갈려서 오류가 날 때가 있었는데 수업에서 다시 한번 짚어줘서 좋았다.

특정 열을 선택할 때

df['col1']
df['co11','col2'] # 오류
df[['co11','col2']]

여러 개의 열을 선택할 때는 꼭 괄호를 두 개 써줘야 한다.

 

col=['col1','col2','col3']
df[col]

이렇게 변수로 지정한 모습을 보면 두 개의 괄호가 필요함을  쉽게 이해할 수 있다.

 

- 결측치 제거

df.isnull().sum()

결측치가 칼럼 별로 몇 개가 있는지 알 수 있다.

 

df.dropna()

dropna를 사용하여 결측치를 제거해준다.

 

 

2. 정렬과 로직과 수치 정보의 결합

 

not과 and, or을 표현하는 코드

 

not

df[~(df['col1'] == 'abc')] # 꼭 () 소괄호로 감싸주기!

not(제외)은 ~을 이용하여 표현해준다. 이때 꼭 ( )로 감싸줘야 한다.

 

and

df[(df['col1'] == 'abc') & (df['col2'] > 300)]

and(그리고)는 &을 이용하여 표현해준다.

 

or

df[(df['col1'] == 'abc') | (df['col2'] > 200)]

or(또는)은 |을 이용하여 표현해준다.

 

정렬

df.sort_values('col1') #오름차순

df.sort_values('col1', ascending=False) #내림차순

sort_values를 해주어 정렬을 해주는데 이때 기본 값은 오름차순이다.

내림차순으로 변경하고 싶다면 ascending을 False로 변경해주면 된다.

 

3. 시각화 기초

 

산점도

import matplotlib.pyplot as plt
import seaborn as sns

sns.pairplot(df,hue='col1')
plt.show()

그래프에 점으로 나타내준다.

hue는 종류별로 구분을 해준다.

 

파이 그래프(원)

pie_labels = df['col1'].value_counts().index.tolist() #인덱스를 리스트 형태로 뽑아내자 tolist
pie_values = df['col1'].value_counts().values.tolist()
plt.pie(pie_values, labels = pie_labels,autopct='%.2f%%') #소수점 둘째자리까지

pie그래프를 그릴 때 리스트로 변환해주어 나타내 줬다.

리스트로 변환시키기 위해 tolist()를 사용해줬다.

 

bar chart(바 차트)

sns.barplot(data=df[df['col1'] == 'abc'], x='col2', y='col3',ci=None).set(xlabel='Col2',ylabel='col3')

df['col1'].plot(kind='hist') #히스토그램

특정 조건을 만들어 바 차트로 원하는 대로 만들어 줄 수도 있고, 히스토그램으로도 표현할 수 있다.

 

일별 그래프와 누적 그래프

df_count = df.groupby(['date'])['id'].count()
plt.rcParams['figure.figsize'] = (15,5)
df_count.plot() # 일별 그래프

df_count.cumsum().plot() #cumsum()은 누적

일별그래프
누적 그래프

groupby를 이용하여 날짜별로 count(수)를 셌다.

누적을 나타내기 위해서는 cumsum()을 이용한다.

 

 

지금까지 사용해오고 많이 봐왔던 부분이라 다시 한번 더 정리한다는 느낌으로 수업을 들었다.

정리를 하니 더 기억에 남고 자세히 배울 수 있었다.

특히 몰랐던 부분인 누적 그래프를 그릴 때 cumsum()을 사용해야 한다는 것과 not은 ~을 사용한다는 것을 알았다.

나중에 활용해봐야겠다.

리스트를 사용한 파이 그래프도 다시 보며 이해할 수 있었고, 3주 차도 의미 있는 수업이었다!