본문 바로가기
TOP
데이터 스킬업/데이터 처리&시각화(Python)

[파이썬 : DataFrame 다루기] #02 행/열 추가 및 제거 with Pandas

by 티챠림 2022. 7. 17.

[왕초보 데이터분석 무작정 따라하기] DataFrame을 다루는데 있어 필요한 행/열의 추가 및 제거에 사용하는 concat(), drop() 메소드를 설명한다.


행/열 추가 및 제거, 중복값 제거 

 


 행/열 추가 (바로가기 Click)

행/열 제거 (바로가기 Click)


데이터를 다루다 보면 행이나 열을 추가하거나 제거해야하는 경우가 많이 발생한다. 판다스의 concat() 메소드를 이용하면 행/ 열을 추가를, drop() 메소드를 이용하면 행/열 제거를 쉽게 할 수 있다. 아래와 같은 A_df가 존재할 때, 행(row) 또는 열(column)을 추가 및 제거하는 방법을 알아보자.

 

A_df

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한 것으로 변경

 

댓글