코딩 7

t 검정 with 파이썬

파이썬으로 t 검정을 수행하는 방법에 대해 정리해보려고 합니다. t-검정은 집단의 평균 값을 추정하거나 집단 간 차이를 검정할 때 사용하는 검정 방법으로, 대표적으로 3가지의 경우 ( 일 표본, 대응표본, 독립표본) 가 있습니다. 1. 일 표본의 경우 일 표본의 경우 모평균의 기준값인 mu 를 설정한 후, '모평균의 값은 mu이다' 라는 귀무가설의 기각 여부를 검정합니다. 일표본의 경우 '정규분포를 이룬다는 가정' 의 충족 여부에 따라 검정 방법이 달라지므로, 먼저  '정규성을 가진다' 라는 귀무가설의 기각 여부를 검정하기 위해 Shapiro test 를 수행합니다.   p value(유의 확률) 이 0.05 보다 작을 경우에는 정규성이 없으므로, 윌콕슨 부호 순위 검정을 수행하고, 클 경우에는 정규성이..

Leet-Code pandas 버전 리뷰

원래는 SQL 문제만 쭉 풀다가 요즘은 리트코드에서 판다스 버전으로 문제를 풀고 있습니다. 현재 Leet-Code 판다스 버전을 20문제 정도 푼 상태인데 그 중에서 인상 깊었던 문제들을 정리해 공유해보려고 합니다. 혼자서 작성했을 때 코드가 꽤나 길었지만 다른 사람들 풀이를 참조하다보니 코드가 확 간결해져서 인상깊었던 문제들의 풀이과정을 정리해봤습니다. 1. 방문은 했지만 거래는 안한 고객 수 찾기두 테이블을 합치고 빼고 하려고 하다보면 코드가 길어질 수 있지만  '~' 을 활용하고 [ ] 안에 필터링을 활용하면 훨씬 간결해지는 것을 볼 수가 있습니다. ~에 있는 지를 확인하는 .isin(), Null 값도 Count 에 포함하는 .size(), 열 이름을 설정하면서 동시에 Dataframe 으로 전환..

SQL Window Function

SQL 에서 자주 쓰는 Window Function 에 대해 정리해보려고 합니다. Window Function 은 특정한 열의 행 각각을 기준으로 다른 열을 정렬하려고 할 때 Select 에서 활용할 수 있는 코드 입니다. 종류는 총 네 가지가 있습니다.  ● rank: 파티션 별 값 순위  RANK() OVER(PARTITION BY 컬럼1 ORDER BY 컬럼2) ○ RANK()는 중간 순위를 비우지만, DENSE_RANK() 는 중간 순위를 비우지 않는다는 점에서만 다르고 나머지는 같습니다. ● row_number: 파티션 별 행 순위  ROW_NUMBER() OVER(PARTITION BY 컬럼1 ORDER BY 컬럼2)  ● first_value, last_value: 파티션 별 먼저, 나중에 ..

SQL 유용한 코드

SQL 문제를 풀면서 자주 쓰게 되는 유용한 코드들을 정리해 봤습니다. 1. 조건이 2개 이상+ 조건과 무관한 행 출력 in 을 활용합니다. in 을 활용하지 않게 되면, 관련 조건 이외의 행들을 출력할 때 관련 없는 행들이 출력될 수 있으므로 고유한 값과 조건의 값을 묶을 수 있도록 in 을 활용해야 합니다. Where 을 쓴 후에 in 절에서 group by 및 조건을 활용할 수 있습니다. 예: product id, year, quantity, and price for the first year of every product sold.     2. join 의 특수한 경우 ● 두 테이블의 모든 경우의 수를 조합해야 하는 경우 Cross join을 활용할 수 있습니다.   ● 두 행의 요소에서 같은 것..

유용한 파이썬 코드 2

파이썬 코드 중 유용할 수 있는 코드들을 정리해 봤습니다. ● 문자열 1. 판별 문자.isdigit() → 숫자인지 판별 문자.isalpha() → 문자인지 판별 문자.isalnum() → 문자나 숫자인지 판별 문자.isupper() → 대문자인지 판별 문자.islower() → 소문자인지 판별 2. 문자 번호 조회 ord(문자) → 문자 번호 반환 chr(문자 번호) → 문자 반환 3. 문자열 변경 문자열.replace('문자 패턴','변경 패턴') 3. 리스트와 유사한 기능 활용 가능 : 요소 추가/제거 제외 ● 문자열 슬라이싱 S='안녕하세요' S[1:4:2]= '녕세' S[::-1] =  '요세하녕안'S[::2] =  '안하요' ● 개수 세기 문자열.count(문자) ● any, all any (..

유용한 리스트, 딕셔너리 코드

파이썬을 다루다 보면 많이 쓰게 되는 코드들 중 리스트, 딕셔너리가 있습니다. 리스트, 딕셔너리 코드 중에서 자주 쓰는 코드들을 정리해 봤습니다. 1. 리스트 ● 제거 list.remove('a'): 처음으로 나오는 'a' 제거 del list[i] : 인덱스 i 에 해당하는 요소 제거 ● 인덱스 list.index('a'): a 의 인덱스 list.insert( i,'a' ): 인덱스 i 에 'a' 삽입 list.pop(i): 인덱스 i 에 해당하는 값 제거 (객체에 저장도 가능) list.pop(): 마지막 값 제거 (객체에 저장도 가능) ● 정렬 list.sort(): 리스트 오름차순 정렬  sorted(반복 가능한 객체): 오름차순 정렬한 리스트 반환정렬 함수(ex: max, sort) (key=..

유용한 파이썬 코드

파이썬 코드를 작성할 때에는 가급적 간결하고 읽기 쉽게 작성해야 나중에 볼 때에 고치기도 쉽고 실수할 가능성이 적습니다. 이러한 관점에서 파이썬 코드 작성시에 유용한 코드들을 정리해 봤습니다.  ● 리스트 컴프리헨션 : 반복, 조건에 따른 리스트를 생성할 때 간결하게 활용 가능   필요한 경우 lambda, map/filter 을 섞어 쓸 수 있지만 코드가 길어질 수 있으므로 가급적 리스트 컴프리헨션 활용하는 것이 좋습니다.  ● lambda: 함수 선언 없이 간결하게 함수 표현 가능   ● map, filter: 특정 조건을 Iterable 객체에 적용 Iterable 객체: list, dict, set, str, bytes, tuple, range ○ map(조작 함수, Iterable 객체) = 적..