"Pandas:DataFrame:데이터 조작"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
(→개요) |
|||
(같은 사용자의 중간 판 6개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
== 개요 == | == 개요 == | ||
+ | 파생변수에 대해 다루는 문서. | ||
+ | |||
dataframe의 평균, 합을 구한다든가 특정 연산을 수행해야 할 때가 있다. for문으로 일일이 할 수도 있지만, 효율이 그닥 좋진 않다. | dataframe의 평균, 합을 구한다든가 특정 연산을 수행해야 할 때가 있다. for문으로 일일이 할 수도 있지만, 효율이 그닥 좋진 않다. | ||
93번째 줄: | 95번째 줄: | ||
|} | |} | ||
− | = Dataframe | + | = Dataframe 조건 연산 = |
+ | |||
+ | === numpy.where 사용 === | ||
{| class="wikitable" | {| class="wikitable" | ||
!의도 | !의도 | ||
102번째 줄: | 106번째 줄: | ||
|dataframe의 if 연산. | |dataframe의 if 연산. | ||
간단하게 하려면 numpy가 필요하다. | 간단하게 하려면 numpy가 필요하다. | ||
− | 다중조건인 경우 &으로 연결한다. | + | |
− | |df['over_5unit'] = np.where(df['1unit']>df['5unit'], True값, False값) | + | * 다중조건인 경우 <code>&</code>으로 연결한다. |
+ | * or인 <code>|</code> 도 사용 가능. | ||
+ | * 중첩조건은 엑셀처럼 작성하면 된다. | ||
+ | |<code>df['over_5unit'] = np.where(df['1unit']>df['5unit'], True값, False값)</code> | ||
<nowiki>#</nowiki> 1unit 행의 값이 5unit 행의 값보다 큰 때에만 True값을 넣는다. | <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]] |
2023년 2월 1일 (수) 12:10 기준 최신판
1 개요[편집 | 원본 편집]
파생변수에 대해 다루는 문서.
dataframe의 평균, 합을 구한다든가 특정 연산을 수행해야 할 때가 있다. for문으로 일일이 할 수도 있지만, 효율이 그닥 좋진 않다.
2 수치조작[편집 | 원본 편집]
2.1 평균 구하기[편집 | 원본 편집]
의도 | 설명 | 방법 |
---|---|---|
행 평균 구하기 | 각 행 방향의 평균 구하기 | df.mean(axis=1) |
열 평균 구하기 | 각 열에 대한 평균을 구한다. | df.mean(axis=0) |
특정 열 평균 구하기 | df["열이름"].mean(axis=0) | |
특정 행의 특정 열에 대한 평균만 구하기 | 특정 행의 특정 데이터만 연산해서 새로운 열을 추가한다. | df['mean'] = df[['start', 'high', 'low', 'close']].mean(axis=1) |
2.2 각종 통계값[편집 | 원본 편집]
의도 | 설명 | 방법 |
---|---|---|
각 방향으로의 합을 구한다. | axis 옵션으로 방향을 지정한다.
0 : 칼럼 1 : 행 |
df.sum(axis=0) |
누적합 | df.cumsum(axis=0) | |
표준편차 구하기 | df.std(axis=0) | |
분산 구하기 | df.var(axis=0) | |
이외 다양한 함수를 제공하는데, 공식문서를 참고하자.
왜도 구하기. df.skew()
첨도 구하기. df.kurtosis()
2.3 행별 연산[편집 | 원본 편집]
의도 | 설명 | 방법 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
순위 구하기 | ascending은 점수가 낮을 때 상위.
|
df.rank(method='옵션', ascending=False) |
3 Dataframe 조건 연산[편집 | 원본 편집]
3.1 numpy.where 사용[편집 | 원본 편집]
의도 | 설명 | 방법 |
---|---|---|
특정 행 사이를 if연산 | dataframe의 if 연산.
간단하게 하려면 numpy가 필요하다.
|
df['over_5unit'] = np.where(df['1unit']>df['5unit'], True값, False값)
# 1unit 행의 값이 5unit 행의 값보다 큰 때에만 True값을 넣는다.
|
다중연산 | 특정 범주 안에 들어있는가 파악하기. | 변수 = np.where(
(df['category'] == '값1') | (df['category'] == '값2') | ... , '참값', '거짓값')
변수 = np.where(
df['category'].isin([값1, 값2, ...]) , '참값', '거짓값')
|
3.2 dataframe 행 추출(조건 추출)[편집 | 원본 편집]
df.query() 활용.
의도 | 설명 | 방법 |
---|---|---|
조건 추출 | 특정 조건에 해당하는 데이터프레임의 행을 추출한다.
&, |, in, >, >= 등 일반적으로 사용하는 연산자 사용 가능. 조건에 외부변수를 사용하려면 @변수명 형태로 기입한다. |
|