간단하게 판다스로 작업한 데이터 프레임을 그래프로 시각화하는 것을 알려드리겠습니다.
다음 score 파일을 작업 폴더에 넣어주세요.
dfs = []
for i in range(1,4):
file_name = 'score/score%d.csv'%i
dfs.append(pd.read_csv(file_name))
score_df = pd.concat(dfs)
score_df.drop_duplicates(inplace=True)
score_df.dropna(inplace=True)
score_df
# 중복 여부 확인 : DataFrame.duplicated()
# 중복이 있으면 처음과 마지막 값 중 무엇을 남길 것인가? : keep = 'first', 'last', False
# 중복값 처리(unique한 1개의 key만 남기고 나머지 중복은 제거) : DataFrame.drop_duplicates()
- pd.read_csv () : 해당 파일은 score 폴더 밑에 존재하며 파일 이름은 score1,2... 이렇게 되있기 때문에 한번에 불러오기 위해 for문을 작성하였다.
- drop_duplicates() : 해당 파일을 보게 되면 중복 데이터가 있기 때문에 중복을 제거하고 하나만 남기게 됨
- .dropna() : 결손 데이터가 있는 행을 제거하는 것으로 inplace = True를 통해 원본 데이터프레임이 변경되게 된다.
score_df.reset_index(drop=True, inplace=False) # 인덱스를 새로 정렬하지만, 원래 인덱스를 칼럼으로 만들지 않음
- 인덱스를 확인하면 인덱스가 불규칙적으로 된 것을 확인할 수 있다. 새로 정렬하기 위해 reset_index를 사용하였으며, drop=True를 통하여 인덱스가 변경되어 원래 인덱스를 칼럼으로 만드는 과정을 하지 않음
1. 그래프 그리기
import matplotlib.pylab as plt
score_df.plot()
plt.show()
- 그래프를 그리기 위해 matplotlib를 import 하고 .plot를 통하여 그래프를 그리고 show를 통하여 확인할 수 있다.
2. 상자그래프 그리기
score_df.boxplot('sci')
- 과학 성적에 대한 boxplot을 그릴 수있다.
3. crosstab 이용한 그래프
pd.crosstab(titanic_df.Survived, columns=titanic_df.Pclass).plot() # 선그래프
pd.crosstab(titanic_df.Survived, columns=titanic_df.Pclass,normalize=True).plot(kind='bar') # 막대 그래프
- 타이타닉 데이터의 생존률을 Pclass를 가지고 선그래프를 그려주고,kind='bar'를 인자로 넣어주면 막대그래프로 그려짐
4. figure() : 차트를 생성하는 함수
plt.figure(figsize=(15,10)) # figure => 캔버스라 생각, 숫자는 inch단위 (x,y)
score_df.hist(ax=plt.gca()) # 캔버스에 도화지를 붙인다 ax
- 과목별 성적의 분포를 그래프로 확인 할 수 있다.
'머신러닝 in Python' 카테고리의 다른 글
[R] 네이버 크롤링 (0) | 2019.08.12 |
---|---|
[R]다음 영화 평점 크롤링 (0) | 2019.08.12 |
판다스(Pandas) 결손 데이터 처리 및 apply (0) | 2019.08.08 |
판다스(Pandas) 정렬, Aggregation, groupby (0) | 2019.08.08 |
판다스(pandas) 인덱스 (0) | 2019.08.08 |