[왕초보 데이터분석 무작정 따라하기] DataFrame을 다루는데 있어 필요한 행/열의 추가 및 제거에 사용하는 concat(), drop() 메소드를 설명한다.
행/열 추가 및 제거, 중복값 제거
데이터를 다루다 보면 행이나 열을 추가하거나 제거해야하는 경우가 많이 발생한다. 판다스의 concat() 메소드를 이용하면 행/ 열을 추가를, drop() 메소드를 이용하면 행/열 제거를 쉽게 할 수 있다. 아래와 같은 A_df가 존재할 때, 행(row) 또는 열(column)을 추가 및 제거하는 방법을 알아보자.
import pandas as pd
A_df = pd.DataFrame({'str' : ['a', 'b', 'c'],
'int' : [1, 1, 2],
'float' : [0.1, 0.2, 0.1]})
A_df
행/열 추가
concat
pd.concat([A_df, B_df], axis= , join= , ignore_index= )
- axis=
0 : 위아래 합치기(Default)
1 : 좌우으로 합치기 - join=
'outer' : 기준 df가 포함하지 않는 컬럼도 병합(Default)
'inner' : 기준 df가 포함하는 컬럼만 병합 - ignore_index=
False : 각 df의 인덱스 유지(Default)
True : 인덱스를 병합하여 재배열
concat 메소드는 2개의 데이터프레임을 위아래, 좌우로 병합할 수 있고 이를 이용해서 행/열을 추가할 수 있다.
1. 행(row) 추가
Task. 마지막 행으로 'd', 2, 0.2를 추가하려고 함.
- 추가할 row를 df로 만들어준 후, 기존 df에 병합
- 'ignore_index = True'를 설정하여 인덱스를 재정렬
#방법1
cols= ['str', 'int', 'float'] #컬럼 이름 지정
add_row = [['d', 2, 0.2]] #추가할 row 리스트
row_df = pd.DataFrame(data = add_row, columns = cols) #df 생성
addrowA_df = pd.concat([A_df, row_df], ignore_index = True) #A_df를 기준으로 add_df를 병합하고, index 재정렬
addrowA_df
#방법2
row_df = pd.DataFrame({'str' : ['d'],
'int' : [2],
'float' : [0.2]})
addrowA_df = pd.concat([A_df, add_df], ignore_index = True)
addrowA_df
2. 열(column) 추가
Task. 'int'와 'float'를 합한 값을 갖는 새로운 열을 추가하려고 함.
- 추가할 column를 df로 만들어준 후, 기존 df에 병합
- 'axis= 1'로 설정하여 병합 기준 축을 '좌우'로 설정
#방법1
cols= ['sum']
add_row = [[1.1],
[1.2],
[2.1],
[2.2]]
col_df = pd.DataFrame(data = add_row, columns = cols)
colA_df = pd.concat([addrowA_df, col_df], axis= 1, ignore_index = True)
colA_df
#방법2
col_df = pd.DataFrame({'sum' : [1.1, 1.2, 2.1, 2.2]})
colA_df = pd.concat([addrowA_df, col_df])
colA_df
행/열 제거
drop
df.drop(index= , columns= )
- index= : 인덱스 기준으로 row 제거
- colmuns = : '컬럼명' 기준으로 column 제거
- inplace =
Fale : 원본 데이터프레임을 변경하지 않음(Default)
Ture : 원본 데이터프레임을 drop한 것으로 변경
drop은 지정된 조건에 따라 행 또는 열을 제거하는 메소드이다.
1. 행(row) 제거
: Task. 인덱스 3의 행 제거하려고 함.
- 'index= 3'로 설정하여 인덱스 3을 갖는 행 제거
drrowA_df = colA_df.drop(index = 3)
drrowA_df
2. 열(column) 제거
Task. 컬럼명 'sum'을 갖는 열 제거하려고 함.
- 'columns= 'sum''로 설정하여 컬럼명 'sum'을 갖는 열(column) 제거
drcolA_df = drrowA_df.drop(columns = 'sum')
drcolA_df
기능 | 코드 | 파라미터 |
행 또는 열 추가 | pd.concat([A, B], axis= , join= , ignore_index= ) | axis= : 0은 위아래 합치기, 1은 좌우으로 합치기 join= : 'inner'은 교집합, 'outter'은 합집합 ignore_index= : True는 인덱스 재배열, False는 유지 |
행 또는 열 제거 | df.drop() | index= : 인덱스 기준으로 row 제거 colmuns = : '컬럼명' 기준으로 column 제거 inplace = Fale : 원본 데이터프레임을 변경하지 않음(Default) Ture : 원본 데이터프레임을 drop한 것으로 변경 |
'데이터 스킬업 > 데이터 처리&시각화(Python)' 카테고리의 다른 글
[파이썬 : DataFrame 다루기] #01 DataFrame 생성, 컬럼값(특정값)/인덱스 기준 정렬 with Pandas (0) | 2022.07.17 |
---|---|
[인트로: 데이터분석] #00 마케터에게 데이터란? (0) | 2022.06.21 |
댓글