1번째 줄: |
1번째 줄: |
| + | {{Pandas:DataFrame}} |
| + | |
| == 개요 == | | == 개요 == |
| 데이터의 전체 구조를 조작하는 방법에 대해. | | 데이터의 전체 구조를 조작하는 방법에 대해. |
8번째 줄: |
10번째 줄: |
| !방법 | | !방법 |
| |- | | |- |
− | |행 삭제 | + | |열 삭제 |
| |칼럼을 삭제한다. 시리즈로 변환하여 반환한 후 삭제한다. | | |칼럼을 삭제한다. 시리즈로 변환하여 반환한 후 삭제한다. |
| |col = df.pop('열이름') | | |col = df.pop('열이름') |
| |- | | |- |
− | |행 삭제 | + | |열 삭제 |
| |그냥 삭제. | | |그냥 삭제. |
| |df.del('열이름') | | |df.del('열이름') |
| + | df.drop(columns = '열이름') |
| + | |
| + | df.drop(columns = ['열1', '열2', ...]) # 여러 개의 열을 지울 경우. |
| + | |- |
| + | | |
| + | | |
| + | | |
| |} | | |} |
| == 자르기 == | | == 자르기 == |
53번째 줄: |
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" |
109번째 줄: |
99번째 줄: |
| |- | | |- |
| |인덱스로 선택 | | |인덱스로 선택 |
− | |인덱스가 순차적인 데이터인 경우. | + | |이중대괄호로 선택하는 경우는 dataframe으로, |
| + | 대괄호 하나로 선택하는 경우엔 series로 추출한다. |
| |<code>df.loc[:, ['열이름', '열이름2', ...]]</code> | | |<code>df.loc[:, ['열이름', '열이름2', ...]]</code> |
− | df[[<code>'열이름', '열이름2', ...</code>]] | + | df<nowiki>[['열이름', '열이름2', ...]]</nowiki> # dataframe으로 반환 |
| + | |
| + | df['열이름', '열이름2', ...] # series로 반환 |
| |- | | |- |
| |순서로 선택 | | |순서로 선택 |
122번째 줄: |
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" |
135번째 줄: |
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]] |