1번째 줄: |
1번째 줄: |
| == 개요 == | | == 개요 == |
| + | 파생변수에 대해 다루는 문서. |
| + | |
| dataframe의 평균, 합을 구한다든가 특정 연산을 수행해야 할 때가 있다. for문으로 일일이 할 수도 있지만, 효율이 그닥 좋진 않다. | | dataframe의 평균, 합을 구한다든가 특정 연산을 수행해야 할 때가 있다. for문으로 일일이 할 수도 있지만, 효율이 그닥 좋진 않다. |
| | | |
21번째 줄: |
23번째 줄: |
| | | | | |
| |df["열이름"].mean(axis=0) | | |df["열이름"].mean(axis=0) |
| + | |- |
| + | |특정 행의 특정 열에 대한 평균만 구하기 |
| + | |특정 행의 특정 데이터만 연산해서 새로운 열을 추가한다. |
| + | |df['mean'] = df<nowiki>[['start', 'high', 'low', 'close']]</nowiki>.mean(axis=1) |
| + | |} |
| + | |
| + | == 각종 통계값 == |
| + | {| class="wikitable" |
| + | !의도 |
| + | !설명 |
| + | !방법 |
| + | |- |
| + | |각 방향으로의 합을 구한다. |
| + | |axis 옵션으로 방향을 지정한다. |
| + | 0 : 칼럼 |
| + | |
| + | 1 : 행 |
| + | |df.sum(axis=0) |
| + | |- |
| + | |누적합 |
| + | | |
| + | |df.cumsum(axis=0) |
| + | |- |
| + | |표준편차 구하기 |
| + | | |
| + | |df.std(axis=0) |
| + | |- |
| + | |분산 구하기 |
| + | | |
| + | |df.var(axis=0) |
| + | |- |
| + | | |
| + | | |
| + | | |
| + | |} |
| + | 이외 다양한 함수를 제공하는데, 공식문서를 참고하자. |
| + | |
| + | 왜도 구하기. df.skew() |
| + | |
| + | 첨도 구하기. df.kurtosis() |
| + | |
| + | == 행별 연산 == |
| + | {| class="wikitable" |
| + | !의도 |
| + | !설명 |
| + | !방법 |
| + | |- |
| + | |순위 구하기 |
| + | |ascending은 점수가 낮을 때 상위. |
| + | {| class="wikitable" |
| + | |+method 옵션 |
| + | !옵션 |
| + | !설명 |
| + | |- |
| + | |average |
| + | |동점자들의 그룹 내 평균 |
| + | |- |
| + | |min |
| + | |그룹 내 최소순위 |
| + | |- |
| + | |max |
| + | |그룹 내 최대순위 |
| + | |- |
| + | |first |
| + | |동점자 없이, 관측되는 순서에 따라 순위 부여 |
| + | |- |
| + | |dense |
| + | |min에 1을 더한 값. |
| + | |} |
| + | |df.rank(''method='옵션''', ascending=False) |
| + | |} |
| + | |
| + | = Dataframe 조건 연산 = |
| + | |
| + | === numpy.where 사용 === |
| + | {| class="wikitable" |
| + | !의도 |
| + | !설명 |
| + | !방법 |
| + | |- |
| + | |특정 행 사이를 if연산 |
| + | |dataframe의 if 연산. |
| + | 간단하게 하려면 numpy가 필요하다. |
| + | |
| + | * 다중조건인 경우 <code>&</code>으로 연결한다. |
| + | * or인 <code>|</code> 도 사용 가능. |
| + | * 중첩조건은 엑셀처럼 작성하면 된다. |
| + | |<code>df['over_5unit'] = np.where(df['1unit']>df['5unit'], True값, False값)</code> |
| + | <nowiki>#</nowiki> 1unit 행의 값이 5unit 행의 값보다 큰 때에만 True값을 넣는다. |
| + | |
| + | <code>df['열'] = np.where(조건, 참, np.where(조건, 참2, 거짓))</code> |
| + | |- |
| + | |다중연산 |
| + | |특정 범주 안에 들어있는가 파악하기. |
| + | |<syntaxhighlight lang="python"> |
| + | 변수 = np.where( |
| + | (df['category'] == '값1') | (df['category'] == '값2') | ... , '참값', '거짓값') |
| + | </syntaxhighlight>위 형태로는 너무 코드가 길어져서... 아래와 같이 축약하곤 한다.<syntaxhighlight lang="python"> |
| + | 변수 = np.where( |
| + | df['category'].isin([값1, 값2, ...]) , '참값', '거짓값') |
| + | </syntaxhighlight> |
| + | |} |
| + | |
| + | === dataframe 행 추출(조건 추출) === |
| + | df.query() 활용. |
| + | {| class="wikitable" |
| + | !의도 |
| + | !설명 |
| + | !방법 |
| + | |- |
| + | |조건 추출 |
| + | |특정 조건에 해당하는 데이터프레임의 행을 추출한다. |
| + | |
| + | &, |, in, >, >= 등 일반적으로 사용하는 연산자 사용 가능. |
| + | |
| + | 조건에 외부변수를 사용하려면 @변수명 형태로 기입한다. |
| + | | |
| + | * df.query('조건') # 조건을 문자열 형태로 넣어야 한다. 조건은 일반 if문법을 따라간다. |
| + | *: 예시) <code>df.query('열이름 == 1')</code> # 해당 열에서 1 값을 갖는 행만 뽑아낸다. |
| + | * 외부 변수를 조건에 활용하려면 <code>df.query('열이름 == @외부변수명')</code> 형태로 @를 사용한다. |
| |} | | |} |
| [[분류:Pandas:DataFrame]] | | [[분류:Pandas:DataFrame]] |