1번째 줄: |
1번째 줄: |
| + | {{Pandas:DataFrame}} |
| + | |
| == 개요 == | | == 개요 == |
| 데이터의 전체 구조를 조작하는 방법에 대해. | | 데이터의 전체 구조를 조작하는 방법에 대해. |
60번째 줄: |
62번째 줄: |
| === dataframe끼리 붙이기 === | | === dataframe끼리 붙이기 === |
| [아직 완성하지 않음;;;] | | [아직 완성하지 않음;;;] |
− | {| class="wikitable"
| |
− | !의도
| |
− | !설명
| |
− | !방법
| |
− | |-
| |
− | |위아래로 붙이기
| |
− | |두 df를 아래로 이어붙이기.
| |
− | df 목록은 리스트로 준다.
| |
− | |df = pd.concat([df, df2])
| |
− | |-
| |
− | |옆으로 붙이기
| |
− | |
| |
− | |df = pd.concat([df, df2], axis=1)
| |
− | |-
| |
− | |기존 인덱스 무시하고 붙이기
| |
− | |
| |
− | |concat에 <code>ignore_index=True</code> 옵션을 준다.
| |
− | |}
| |
− |
| |
| === 끼어넣기 === | | === 끼어넣기 === |
| {| class="wikitable" | | {| class="wikitable" |
132번째 줄: |
115번째 줄: |
| <code>df.iloc[:, 0:3]</code> | | <code>df.iloc[:, 0:3]</code> |
| |} | | |} |
− | | + | {| class="wikitable" |
− | == 데이터 프레임끼리의 연산 == | + | |- |
| + | |칼럼 순서 바꾸기 |
| + | |<syntaxhighlight lang="python"> |
| + | 데이터프레임2 = DataFrame(데이터프레임1, columns=[열이름1, 열이름2, ...]) |
| + | </syntaxhighlight> |
| + | |} |
| + | = 데이터 프레임끼리의 연산 = |
| 사칙연산 뿐 아니라 ==, !=, > 등의 논리연산도 가능하다. 기본적으로 칼럼과 레이블이 같은 위치의 값들끼리 연산한다. | | 사칙연산 뿐 아니라 ==, !=, > 등의 논리연산도 가능하다. 기본적으로 칼럼과 레이블이 같은 위치의 값들끼리 연산한다. |
| | | |
| + | ===열 조작=== |
| + | {| class="wikitable" |
| + | !의도 |
| + | !방법 |
| + | !설명 |
| + | |- |
| + | |열 선택 |
| + | |df.<nowiki>[['열1', '열2', ...]]</nowiki> |
| + | |해당 df에서 열을 선택하는 방법. |
| + | 열이 1개일 땐 대괄호 하나에 열이름으로 선택이 되지만, 2개 이상일 땐 대괄호 2개로 묶어주어야 한다. |
| + | |- |
| + | |열 리스트 얻기 |
| + | |df.columns |
| + | |어떤 칼럼이 있는지 알려준다. |
| + | |- |
| + | |열 이름 바꾸기 |
| + | |데이터프레임.rename(columns={'구이름':'신이름', '구이름2':'신이름2'}, inplace=True) |
| + | |inplace=True 이 옵션이 뭔진 모르겠네;; 숫자칼럼을 바꾸려면 붙어야 적용이 된다. |
| + | |- |
| + | |열 순서 바꾸기 및 추출 |
| + | |df<nowiki>[['열이름1', '열이름2']]</nowiki> |
| + | |열이름에 해당하는 순서로 해당 열들만 추출된다. |
| + | |- |
| + | | 열 제거 |
| + | |df = df.drop(columns='열이름') |
| + | | |
| + | |- |
| + | |열 붙이기 |
| + | |df['새로운 칼럼'] = 칼럼 |
| + | |행의 크기가 같은 칼럼을 붙일 수 있다. |
| + | |- |
| + | |새로운 칼럼 만들기 |
| + | |df['새 칼럼'] = df['열이름'].rank() |
| + | |크기가 같은 칼럼을 만든 후 덧붙일 수 있다. |
| + | |- |
| + | | |
| + | | |
| + | | |
| + | |- |
| + | |최댓값 구하기 |
| + | | df['열이름'].max() |
| + | | |
| + | |- |
| + | |최댓값의 인덱스 |
| + | |df['열이름'].idxmax() |
| + | | |
| + | |- |
| + | |최솟값 구하기 |
| + | |df['열이름'].min() |
| + | | |
| + | |- |
| + | |정규화 |
| + | |norm(df, '열이름') |
| + | |최솟값을 0, 최대값을 1로 정규화한다. |
| + | 전체 데이터에서 최솟값을 빼고, 최댓값과 최솟값의 차로 나눈다. |
| + | |} |
| + | == 파생변수 만들기 == |
| + | 데이터프레임 행별 연산을 통해 파생변수를 만들 수 있다. |
| + | {| class="wikitable" |
| + | !의도 |
| + | !설명 |
| + | !방법 |
| + | |- |
| + | |대괄호로 생성 |
| + | | |
| + | * 행별 연산을 통해 새로운 열 생성. |
| + | * np.where로 조건문의 사용도 가능하다. |
| + | |<code>df['새로운열'] = df['열1'] + df['열2']</code> |
| + | |- |
| + | |assign으로 생성 |
| + | |위와 동일. |
| + | |<code>df.assign(새로운열1 = df['열1'] + df['열2'], 새로운열2 = 연산...)</code> # 새로운 열은 따옴표로 감싸지 않는 것에 유의. |
| + | |} |
| = 정렬 = | | = 정렬 = |
| {| class="wikitable" | | {| class="wikitable" |
145번째 줄: |
207번째 줄: |
| |기본적으로 오름차순. | | |기본적으로 오름차순. |
| ascending=False 옵션을 주면 내림차순. | | ascending=False 옵션을 주면 내림차순. |
− | |df.sort_values('sum', inplace=True, ascending=False) | + | | |
| + | * df.sort_values('열이름', inplace=True, ascending=False) |
| + | * df.sort_values(['열1', '열2', ...], inplace=True, ascending=[Ture, False, ...]) # 여러 열에 대하여 각각의 정렬조건을 지정 가능. 앞에서부터 정렬한다. |
| |} | | |} |
| [[분류:Pandas:DataFrame]] | | [[분류:Pandas:DataFrame]] |