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 |
---|