본문 바로가기

Computer Science/파이썬

[데이터 전처리] Pandas isin Column이 list의 값들을 포함하고 있는 모든 행들을 골라낼 때 주로 쓴다. df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'f']}) A B 0 1 a 1 2 c 2 3 f df[df['A'].isin([1, 3, 12])] A B 0 1 a 2 3 f 더보기
[통계/python] 가설검정3 - ANOVA test ANOVA (Analysis of Variance; 분산분석) 2개 이상 그룹의 평균에 차이가 있는지를 분산을 통해 가설 검정하는 방법. 여러 그룹들이 하나의 분포에서부터 왔다는 가정에서 출발하여 이를 위한 지표 F-statistic(두개의 분산의 비율)로 확인. ANOVA 테스트를 하는 이유 : 여러개를 하나하나씩 비교 하는 것은 그룹수가 늘어 날 수록 에러의 값도 커진다.(Multiple Comparision problem; 1종오류) 따라서 그 그룹들을 한번에 비교하는 방법이 필요. F 값이 높다는 의미 1. 분자(다른그룹간의 분산)는 크고 분모(전체 그룹의 분산)는 작다 2. 다른 그룹끼리의 분포가 다를 것이다. 3. 따라서 적어도 어떠한 그룹의 평균은 전체 그룹의 평균값과 다르다. 1. One-.. 더보기
[Python] 가설검정1 - Student T-test [통계이론] >>>> https://kimmaadata.tistory.com/19 [통계] 가설검정1 - Student T-test (ft. z-test) Student T-test 목적: 두개의 집단이 통계적으로 같은지 다른지 비교하기 위해 사용 두집단의 평균값의 차이가 표준편차보다 현저히 작으면 이 차이는 우연히 밸생했다라고 결론, 반대로 두집단의 kimmaadata.tistory.com 이어서 파이썬에서 활용하는 방식 분석 순서 1)두 집단의 분산이 같은지 검정한다 (var.test()) : 데이터정규성 확인(python normal test) 2)분산이 다르면 Welch의 t-test를 적용한다 (t.test()) 3)분산이 같으면 pooled variance를 이용한 t-test를 적용한다 (v.. 더보기
[Python] 데이터 전처리 3 - DataFrame 슬라이스 (인덱서 loc, iloc) python 에서는 연속되는 여러개의 요소를 가진 자료형을 시퀀스 자료형(Sequence Types)이라고 한다. 그리고 이 시퀀스 자료형들은 자신의 하위요소에 접근하기 위해 슬라이스(Slice)를 문법을 사용한다. * 배열, 문자열, Numpy 배열, Pandas의 DataFrame 에서 슬라이스 구문을 사용할 수 있다. but. 구문은 같지만 내부 동작은 다르다. 따라서 배열의 슬라이스, DataFrame의 슬라이스는 다른 결과를 나타낼 수 있다. 인덱서 loc, iloc 1. loc = label이나 조건표현으로 선택하는 방법 Access a group of rows and columns by label(s) or a boolean array. ## row 행 선택 # 선택하고 싶은 row만 선택 .. 더보기
[Python] Feature Engineering 1 - DataFrame manipulation (단순 합계 column생성, string to numeric with replace def, Concat, Merge, Join) 1. 기존 데이터프레임에서 선택한 컬럼의 값들의 합의 값으로 새로운 컬럼을 추가 이때 column의 값은 numerical data(int, float) df['새로만들컬럼이름'] = df['기존col1'] + df['기존col2'] + df['기존col3'] df 2. 숫자의 콤마( ' , ')를 교체하는 방법 숫자에 ' , ' 가 기재되어 있을시 numeric data가 아닌 string으로 인식 하므로 숫자의 ', '를 공백으로 대치하여야 한다. [in] testString = '25,970' testString = testString.replace(',','') [out] '25970' 데이터셋에 적용하기 위해서는 apply 함수를 사용하여 각 column에 한번에 적용 해주어야 한다. # def.. 더보기
[Python] 데이터 전처리 2 - 중복값 확인 및 처리 데이터를 불러오고 결측치를 처리하고 나면, 중복된 값이 있는지 확인하고 이를 처리 해야 한다. 특히, merge나 Join으로 데이터를 합친 프레임이라면 더더욱 확인하고 처리해야하는 중복값. 중복값 확인 (True값이 중복된 부분) df.duplicated(['중복값확인하고싶은column']) df.duplicated(['중복값 확인하고싶은 column1', '중복값 확인하고싶은 column2']) #df key1 key2 col 0 a v 1 1 b w 2 2 b w 3 3 c x 4 4 c y 5 출처: https://rfriend.tistory.com/266 [R, Python 분석과 프로그래밍의 친구 (by R Friend)] df.duplicated(['중복값확인하고싶은column']) #res.. 더보기
[Python] 데이터 전처리 1 - 결측치 확인 및 처리 데이터를 불러왔으면 이제부터 데이터 전처리 과정이 시작된다, 데이터의 구성요소를 빠르게 확인하고 제대로된 데이터들로 만들어 줘야 한다. 데이터 확인 df.shape() ==> 데이터셋의 형태, 즉 열과 행의 수를 보여줌 df.head() / df.tail() ==> 데이터셋의 위에서 5개 / 아래서 5개 보여줌 (괄호안에 int를 넣으면 그 int만큼 보여줌) dtypes ==> 데이터 프레임의 type을 보여줌 (float, object, str...etc.) df.describe() ==> 데이터셋의 numeric 행에 대한 count, mean, std(표준편차), min, 25%(Q1), 50%(Q2), 75%(Q3), max(Q4)값을 한번에 보여줌 결측치 확인 df.info() ==> 데이터셋.. 더보기
[Python] Pandas로 데이터 불러오기 기본적인 데이터 전처리의 과정을 하기전 데이터를 불러오는 방법부터 알아보자. PAANDS 공식 Ref. pandas.read_csv https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html pandas.read_csv — pandas 1.2.4 documentation Delimiter to use. If sep is None, the C engine cannot automatically detect the separator, but the Python parsing engine can, meaning the latter will be used and automatically detect the separator by .. 더보기