
스택 오버플로우에서 가장 많은 게시물에 태그된 프로그래밍 언어가 무엇인지 분석하기
🔍 유의 사항
.csv파일을 읽고, 파일을 df라는 판다스 데이터프레임 안으로 저장
- 각 열의 이름을 'DATE', 'TAG', 'POSTS' 으로 설정
- 헤더 행을 0으로 설정하면 열 자체의 이름으로 대체 가능
- 처음과 마지막 5개 행 확인 (열 이름이 제대로 설정됐는지 체크)
- 행과 열 개수 확인
- .count() 메소드로 각 열의 NaN이 아닌 항목의 개수 계산
🔍 유의 사항
- 스택 오버플로우가 만들어진 이후 가장 많은 수의 게시물을 보유한 개발 언어 찾기
- TAG 열은 개발 언어의 이름
- .groupby() 메소드와 .sum() 메소드로 각 개발 언어의 게시물 개수 총합 계산
- 각 개발 언어당 게시물이 몇 개월간 존재하는지 세기
- .count() 메소드로 각 열의 항목 세기
🔍 유의 사항
- 개별 셀을 선택하는 방법 2가지 ('DATE' 열의 2번째 항목)
df['DATE'][1]
- . 표기법보다 유연성이 있는 것이 장점
df.DATE[1]
- 열 이름에 공백이 없는 경우에만 사용 가능
- 자동완성 기능이 있어서 편리
- 개별 셀의 데이터 유형을 검사하는 방법
type(개별 셀을 선택하는 방법)- to_datetime() 메소드로 문자열을 타임스탬프로 변환
- 'DATE' 열 전체를 새 값으로 덮어씌워야 한다
- 잘 변환됐는지 확인하기
🔍 유의 사항
- 각 행이 날짜가 되고, 각 열이 개발 언어가 되도록 데이터프레임 피벗하기
- .pivot() 메소드로 데이터프레임을 주어진 인덱스, 열 값을 이용헤 재구성 (변수에 저장해야 함)
- 값이 누락된 항목에는 자동으로 NaN 값이 들어감
- 인자
인덱스(index): 행의 범주열(columns): 열의 범주값(values): 새로운 셀에서 원하는 것- 재구성된 데이터프레임의
- 크기 확인(행과 열 개수)
- 열 이름 출력
- 첫 5행 확인
- 각 열의 항목 수 계산
- .count() 메소드가 NaN 값을 제외하기 때문에 모든 언어가 다르게 나옴
- .fillna() 메소드로 NaN 값을 숫자 0으로 변경
- .isna()에 values 속성과 any() 메소드를 연결하여 NaN 값의 여부를 불리언 값으로 반환
🔍 유의 사항
- 맷플롯립(Matplotlib) 라이브러리로 차트 생성
- 문서 참조
- .plot() 메소드의 가로축(x값)에 날짜, 세로축(y값)에 게시물 수를 넣기
- 차트 스타일 지정
- .figure()
- 차트 사이즈 조정
figsize인자에서 (너비, 높이) 값을 설정- .xticks(), .yticks()
- x축 구성, y축 구성
- 차트 크기를 조정했다면 축에 있는 눈금의 글자 크기
fontsize도 같이 맞춰야 가독성이 좋음- .xlabel(), .ylabel()
- x축에 텍스트 추가, y축에 텍스트 추가
- .ylim()
- (y축) 상한 및 하한 설정
- 게시물 수는 0 밑이 될 수 없으므로 y축의 최저를 0으로 설정
🔍 유의 사항
- 2개의 개발 언어를 한 차트에 표시
- .plot() 메소드를 2번 호출하면 됨
- 모든 개발 언어를 한 차트에 표시
- for루프 활용하기
- .plot()에서 매개변수 설정
linewidth로 선을 더 굵게 지정label로 각 줄에 이름(개발 언어)을 설정- .legend() 메소드로 그래프에 범례 추가
- .plot()에서 설정한 레이블을 수집하여 범례로 사용
- 그래프 오른쪽 위(기본 위치)에 범례가 나타나고, 각 라인의 색상과 이름이 표시됨
🔍 유의 사항
- 앞의 차트처럼 시계열 데이터가 심하게 오르락 내리락 할 경우 흐름을 파악하기 힘듦
- 평균을 취하여 관측치를 평균화하는 기술로 추세를 명확히하기
- 6개 또는 12개의 관측값을 평균화하여
이동평균을 구성- 기본적으로 시간 단위로 평균을 계산하고 한번에 한 관측값씩 앞으로 이동
- .rolling() 메소드에 .mean() 메소드를 연결하여 평균 관측값으로 구성된 데이터프레임 생성
- .rolling()의
window매개변수로 한 번에 그룹으로 처리할 데이터의 개수를 지정
- 6일 경우 현재 값과 이전 5개의 값을 사용하여 계산한다는 것
- 3, 12 등 다양한 숫자를 넣어 차트의 변화 확인하기
- .mean()은 각 윈도우에 대해 평균을 계산 = 이동 평균을 생성