| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 그리디 알고리즘
- 파이썬
- 코딩테스트
- 정렬
- 데이터프레임
- 데이터드리븐
- 스타터스부트캠프
- Til
- DataFrame
- 유데미코리아
- 시각화
- 유데미
- Tableau
- 백준
- pandas
- 취업부트캠프
- Leetcode
- 넘파이
- 부트캠프후기
- 유데미큐레이션
- 데이터분석
- 판다스
- python
- numpy
- ndarray
- 브루트포스 알고리즘
- 유데미부트캠프
- 데이터시각화
- 태블로
- matplotlb
- Today
- Total
Diary, Data, IT
[TIL] 7일차 TIL(20230214) - 데이터 전처리 및 다중막대그래프 본문

[TIL] 7일차 TIL(20230214) - 데이터 전처리 및 다중막대그래프
1. 데이터프레임 문자열 전처리
- df[column].str[0]: 칼럼의 각 문자열(리스트)의 첫번째 값 가져오기
- df[column].str.find('찾을 문자열'): 해당 문자열이 존재하면 시작 인덱스를 반환, 없으면 -1
- find를 이용해서 df[df[column].str.find('찾을 문자열') > 0]을 하면 원하는 문자열을 포함한 행만 가져올 수 있음
ex) ,가 포함된 숫자 칼럼을 int형으로 바꾸기
- df[col].str.replace(',','').astype('int64')
- replace를 통해 ,를 제거해주고 int형으로 바꿔줄 수 있음
2. 결측치가 아닌 행 추출
- df[df[col].notnull()]
3. 특정 칼럼에 존재하는 결측치 제거
- df.dropna(subset = [column])
4. 다중막대그래프
- 축을 숫자로 설정해주면 축+- 지정을 통해 막대의 위치를 조금씩 움직일 수 있다.(np.arange 사용)
- 축을 조금씩 다르게 해준 막대 그래프를 여러개 겹쳐서 그리면 여러개의 정보를 담은 다중막대그래프를 그릴 수 있음
#인덱스 생성
import numpy as np
x_index = np.arange(1, len(df_84_price)+1)
#그래프 그리기
plt.figure(figsize = (15, 5))
plt.bar(x_index-0.3, df_84_price['최대'], width = 0.2, align = 'edge', label = '최대')
plt.bar(x_index-0.1, df_84_price['평균'], width = 0.2, align = 'edge', label = '평균')
plt.bar(x_index+0.1, df_84_price['중간'], width = 0.2, align = 'edge', label = '중간')
plt.bar(x_index+0.3, df_84_price['최소'], width = 0.2, align = 'edge', label = '최소')
plt.xticks(x_index, labels = df_84_price.index, rotation = 45)
plt.grid(axis = 'y', ls = ':')
plt.title('시도별 아파트 매매가 현황(84㎡)', size = 20)
plt.ylabel('매매가(만원)')
plt.legend()
plt.show()

5. 얕은복사, 깊은복사
- df.copy(): 데이터프레임을 깊은복사하여 다른 메모리 주소를 가지는 독립적인 객체로 생성
- df2 = df1: 데이터프레임을 얕은복사하는 것으로 한 데이터프레임의 값을 수정하게되면 둘 다 값이 변경됨
- 원본을 따로 저장하고 수정을 방지하기 위해서는 깊은복사(copy)를 사용해야함
소감 및 정리
어제에 이어 실제 데이터를 활용해서 그래프를 그려보는 학습을 추가적으로 진행했다. 오늘은 좀 더 복잡한 그래프를 그리기도 하고, 그동안 배웠던 내용을 복습하고 손에 익힐 수 있었다. 본문에 수록한 다중막대그래프는 처음 그려보는 그래프였는데, 축을 자유자재로 활용할 수 있다는 점이 신기했고 알아두면 유용하게 사용할 수 있을 것 같다. 또 다룬 데이터에 기본적으로 문자열 데이터가 포함되어있어서 문자열을 처리하는 법에 대해 배웠는데, 해당 함수들을 사용하면 간단하게 문자열을 수정할 수 있다는 점에서 활용도가 높아보여 꼭 알아두어야겠다.
'STARTERS > TIL' 카테고리의 다른 글
| [TIL] 9일차 TIL(20230216) - 집계함수, 문자열/날짜 자료형, 서브쿼리, JOIN (0) | 2023.02.16 |
|---|---|
| [TIL] 8일차 TIL(20230215) - DBMS이론 및 SQL기초, 조건절 (0) | 2023.02.15 |
| [TIL] 6일차 TIL(20230213) - 데이터 시각화 및 활용 (0) | 2023.02.13 |
| [TIL] 5일차 TIL(20230210) - Matplotlib를 이용한 데이터 시각화 (0) | 2023.02.10 |
| [TIL] 4일차 TIL(20230209) - 데이터 시각화, 서울시 물가정보 분석 (1) | 2023.02.09 |