본문 바로가기
Python/Pandas

[Python] Pandas DataFrame 추가/수정

by ybin.im 2025. 1. 24.

Pandas에서 DataFrame을 추가 및 수정하기 위해서 사용하는 몇가지 방법이 있다.

 

먼저 간단한 DataFrame을  생성.

data = {
	'Name' : ['레드', '옐로', '그린'],
    'Age' : [28, 26, 24],
    'City' : ['Seoul', 'Busan', 'Ansan']
    }

df = pd.DataFrame(data, index=['a', 'b', 'c'])

 

 

 

행 추가 

 - .concat()

concat을 하면 데이터프레임을 세로로 합쳐준다.

기본적으로 axis=0 이다.
axis = 0일 땐 기존 데이터프레임 밑부분에 붙지만,
axis = 1일 땐, 옆에 붙는다.

 

 

 

# 행 추가 / .concat

new_row = {"Name" : "블루", "Age" : 30, "City" : "포항}
df = pd.concat([df, pd.DataFrame([new_row])], axis=0 ,ignore_index = True)

 

# concat 결과
# Name  Age   City    
# 0   레드   28  Seoul  
# 1   옐로   26  Busan  
# 2   그린   24  Ansan  
# 3   블루   30     포항


# concat -> axis=1 결과
# df = pd.concat([df, pd.DataFrame([new_row])],axis=1)

#  Name   Age   City Name   Age City
# a   레드  28.0  Seoul  NaN   NaN  NaN
# b   옐로  26.0  Busan  NaN   NaN  NaN
# c   그린  24.0  Ansan  NaN   NaN  NaN
# 0  NaN   NaN    NaN   블루  30.0   포항

 

 

 

열 추가

열추가는,
df[' 추가하고싶은 열 이름 '] = ['a', 'b', 'c', 'd', ...]

위와 같은 형식으로 맞춰서 지정해주면 된다.
# 열 추가

df['직업'] =['바리스타', '엔지니어', '버스기사', '요리사']

# 결과

#   Name  Age   City    직업
# a   레드   28  Seoul  바리스타
# b   옐로   26  Busan  엔지니어
# c   그린   24  Ansan  버스기사
# 0   블루   30     포항   요리사

 

 

 

값 수정 (at, loc)

at과 loc로 특정 값을 수정할 수 있다.

 - .at
df.at[ '인덱스', '열' ] = " 수정할 값 "  <- 이런형식으로 값을 수정한다.

 - .loc
df.loc[df['열'] == '요소', "수정하고 싶은 열" ] = "수정하고 싶은 값"
조건 : 특정 열에 요소
# 값 수정

# at
df.at['d','City'] = "Daegu"

# at 결과
#   Name  Age   City    직업
# a   레드   28  Seoul  바리스타
# b   옐로   26  Busan  엔지니어
# c   그린   24  Ansan  버스기사
# d   블루   30  Daegu   요리사
                  ^^


# loc
df.loc[df['Name'] == "레드", "직업"] = "운동선수"

# loc 결과
#  Name  Age   City    직업
# a   레드   28  Seoul  운동선수 <-
# b   옐로   26  Busan  엔지니어
# c   그린   24  Ansan  버스기사
# d   블루   30  Daegu   요리사

 

 

행 이름변경

.rename 메서드로 변경할 수 있다.
rename 메서드는 df의 칼럼수를 맞춰줄 필요가 없다.

.column 메서드로도 바꿀 수 있는데,
칼럼수를 맞춰서 모두 한번에 바꿔주어야 한다.

 

# rename
df.rename(columns={'Name':'이름, 'Age':'나이', 'City':'사는지역'}, inplace = True)

# columns
df.columns = ['이름', '나이', '사는지역, '직업']

 

'Python > Pandas' 카테고리의 다른 글

[Python] Pandas Series와 DataFrame  (1) 2025.01.09