SQL 코드카타
문제 5. 동물 수 구하기
count(1)
문제 6.
동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요.
이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요.
두 번 이상 쓰인 이름을 조회. 해당 이름이 쓰인 횟수 조회.
이름이 없는 동물은 집계에서 제외. 결과는 이름 순으로 조회.
갑자기 요청사항이 많아져서 살짝 당황스러웠음. 특히, 두 번 이상 쓰인 값과 해당 값이 쓰인 횟수를 찾는 식을 모르기에.. 구글링.
SELECT 컬럼1, 컬럼2, ... , 컬럼n
, COUNT(컬럼1) -- 중복 갯수
FROM 테이블명
GROUP BY 컬럼1, 컬럼2, ... , n
HAVING COUNT(컬럼1) > 1
+결측값 제외는 where 컬럼 is not null (복복습이다)
select -> from -> where-> group by -> order by 순으로 작성..
데이터 분석 강의
라이브러리란? => 데이터 분석 시, 특정 동작을 할 수 있게 하는 코드 모음집. 자주 쓰이는 기능을 불러와 효율성을 높인다.
1. pandas
여러 형태의 데이터 파일 가능
데이터 자르고 붙일 수 있음
결측치 제거 가능
필터링 작업 가능
2. matplotlib
데이터 시각화 라이브러리
구글 colab을 통해 파이썬 작업을 진행할 수 있다.
(연속 연결은 90분, 하루 최대 12시간 사용할 수 있다고 한다.
16년도에 굉장히 뭉툭한 프로그램을 썼던 것 같은데 기술 발전이 놀랍도록 빠르다.. 이 속도에 도태되면 안 되겠다는 생각을 잠시)
변수, 리스트, 딕셔너리 개념
리스트는 대괄호를 사용. /
List=[3,4,[5,6]] 5를 출력하는 방법 Print(list[2][0]) |
딕셔너리는 중괄호를 사용.
키와 값이 짝을 이룬다.
A={‘height’:183,’weight’:68} |
이렇게
Print(변수명[키 이름]) => 값을 호출
데이터 분석의 싸이클은
1) 문제 정의 및 가설 설정
2) 데이터 분석 기본 세팅
3) 데이터 분석
4) 분석 결과 시각화
5) 최종결론
와 같다. 2,3 단에서 pandas를 사용한다.
pandas 사용법은 다음과 같다.
1. 판다스 사용 선언
import pandas as pd
2. 데이터 가져오기
titanic = pd.read_table('파일경로',sep=',')
3. 데이터 확인 및 표 읽기
titanic.head()
4. 공백란 제거
print(titanic.isnull().sum())
#비어있는 값이 도합 몇 개인지 출력된다
titanic = titanic.dropna()
#N/A를 제거 한 후 다시 titanic으로 재 설정한다.
피어슨 상관분석을 이용한다.
corr=titanic.corr(method='pearson')
corr
생존률을 구함에 있어 상관계수가 1인 요소를 제거하고 다시 데이터를 불러온다
corr = corr[corr.Survived !=1]
matplotlib을 이용한 시각화 방법
1) Matplotlib 사용 선언
import matplotlib.pyplot as plt
2) 그래프 그리기
corr.plot()
3) 그래프로 사용할 부분만 남기기
corr['Survived'].plot()
#생존률과의 관계만 필요.
corr = corr.drop(['PassengerId'], axis ='rows')
#필요 없는 열 삭제
4) 원하는 그래프로 변경하기
corr['Survived'].plot.bar()
#막대그래프로 변경
분석을 할 때 어떻게 가설을 설정하는 지가 데이터의 가치를 결정한다.
다방면으로 세분화하고 결합하는 사고방식이 필요하다.
추가 라이브러리
numpy = 데이터 연산을 빠르게 도움
seaborn = 다양한 스타일의 데이터 시각화
아래와 같이 사용 선언 하면 된다.
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
+
titanic.describe()
#대략적인 데이터의 정보, 수치를 확인할 수 있다.(평균, 최소, 최대값, 표준편차)
titanic['Age'].hist(bins=40,figsize=(18,8),grid=True)
히스토그램으로 나타내기
titanic['Age_cat'] = pd.cut(titanic['Age'],bins=[0,3,7,15,30,60,100],include_lowest=True,labels=['baby','children','teenage','young','adult','old'])
나이를 세분화하기
titanic.groupby('Age_cat').mean()
연령별 평균
새로운 측면에서 추가적 정보를 얻을 수 있는 것이다. 같은 데이터로도. 어떤 방식, 관점으로 분석하느냐에 따라. 유용한 가설의 중요성.
+ 아티클 스터디
팀원들과 아티클 스터디를 진행
팀원1- 상관관계를 맹신하지 말 것. 같은 데이터에서도 다른 해석이 나올 수 있다. 는 내용
추후 데이터를 사용할 때 데이터에서 시작한 이야기를 해야지 이야기를 만들고 데이터를 갖다 붙이면 안되겠구나. 하는 성찰을 했다.
팀원2- 데이터 분석가가 되고 나서 깨달은 점에 대한 내용. 단순히 컴퓨터 기술만을 사용하는 게 아닌 의사 소통과 결정 과정에 크게 관여를 하고 있다더라. 하는. 또한 기업 내 실험 문화, 즉 데이터가 흐르는 조직을 만드는 것이 중요 아젠다 라는. 어제 본 뱅크샐러드 실험플랫폼 팀이 생각나는 대목이었음. 사실에 가깝게 - 라는 부분도 인상깊었다
팀원3- 데이터 리터러시를 올리는 방법. 데이터 기반 사고방식/ 환경/ 분석가 세가지 모두가 충족되어야 한다. 단순히 개인의 역량 뿐만 아니라 조직의 인프라와 문화도 못지 않게 중요한가보다. 하며 취업을 준비할 때 조직 문화도 놓치지 않고 커피챗 등으로 꼼꼼히 살펴봐야겠구나는 다짐을 얻었음.
+
관련 정보를 서치해야지 하면서도 매번 미뤄서 스스로 좀 섭섭했었는데,
팀으로 하니까 하게 되더라. 피곤은 한데 나름 굳인것 같다. 남은 몇달도 서로가 서로의 워치독이 되어가주며.. 완주를 해야겠다는 이른 결심.. 분명 언젠간 때려치고 싶어질즈음에 와서 다시 보려고 쓴다..