상세 컨텐츠

본문 제목

231206

TIL

by 30303 2023. 12. 6. 22:11

본문

728x90

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- 데이터 리터러시를 올리는 방법. 데이터 기반 사고방식/ 환경/ 분석가 세가지 모두가 충족되어야 한다. 단순히 개인의 역량 뿐만 아니라 조직의 인프라와 문화도 못지 않게 중요한가보다. 하며 취업을 준비할 때 조직 문화도 놓치지 않고 커피챗 등으로 꼼꼼히 살펴봐야겠구나는 다짐을 얻었음.

+

관련 정보를 서치해야지 하면서도 매번 미뤄서 스스로 좀 섭섭했었는데,

팀으로 하니까 하게 되더라. 피곤은 한데 나름 굳인것 같다. 남은 몇달도 서로가 서로의 워치독이 되어가주며.. 완주를 해야겠다는 이른 결심.. 분명 언젠간 때려치고 싶어질즈음에 와서 다시 보려고 쓴다.. 

 

'TIL' 카테고리의 다른 글

231211월_TIL  (0) 2023.12.11
231207  (2) 2023.12.07
231205  (1) 2023.12.05
231204  (2) 2023.12.04
231130  (0) 2023.11.30

관련글 더보기