판다스 데이터프레임에 행 추가하기: 단계별 가이드
Published on
데이터 분석과 기계 학습 프로젝트에서, 기존의 Pandas DataFrame에 새로운 관측 결과를 추가해야 하는 경우가 많습니다. 설문 데이터, 센서 읽기, 또는 사용자 행동 로그를 처리 하는 경우, 기존 DataFrame에 효율적으로 새로운 행을 추가할 수 있어야 합니다. 파이썬의 인기있는 데이터 조작 라이브러리인 Pandas는 DataFrame에 행을 추가하는 여러 가지 방법을 제공합니다. 이 튜토리얼에서는 .loc, .append, 및 .concat 중에서 세 가지를 사용해 보겠습니다. 시작해 봅시다.
파이썬에서 데이터 시각화를 빠르게 생성 하려면?
PyGWalker는 주피터 노트북 환경에서 직접 데이터 분석 및 시각화 워크 플로우를 빠르게 도와줄 수 있는 오픈 소스 파이썬 프로젝트입니다.
PyGWalker (opens in a new tab)는 데이터프레임 (또는 Polars 데이터프레임)을 시각화 된 UI로 변환하여, 변수를 끌어서 그래프를 쉽게 만들수 있는 기능을 제공합니다. 다음 코드를 사용하여 간단하게 호출합니다:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
이제 바로 온라인 노트북에서 PyGWalker를 사용해 볼 수 있습니다.
그리고 GitHub에서 ⭐️도 부탁드립니다!
.loc 메서드를 사용하여 행 추가하기
Pandas의 .loc 메서드는 DataFrame의 라벨에 기반하여 일부분을 선택할 수 있게 해줍니다. 또한, DataFrame에 새로운 행을 추가할 때에도 사용할 수 있습니다. 아래와 같이 사용할 수 있습니다:
import pandas as pd
# 샘플 데이터프레임 생성
df = pd.DataFrame({
'Name': ['John', 'Sara', 'Tim'],
'Age': [25, 34, 41],
'City': ['New York', 'London', 'Paris']
})
# .loc를 사용하여 새로운 행 추가
df.loc[3] = ['Anna', 29, 'Berlin']
print(df)
위 코드에서는 먼저 세 개의 행과 세 개의 열을 갖는 DataFrame df
를 생성합니다. 그런 다음 .loc
메소드를 사용하여 행 인덱스를 3으로 지정합니다. 마지막으로 새로운 행의 값을 위한 값 목록을 제공합니다.
출력:
Name Age City
0 John 25 New York
1 Sara 34 London
2 Tim 41 Paris
3 Anna 29 Berlin
새로운 행의 행 인덱스가 3이라는 점에 유의하세요. 이는 DataFrame의 마지막 행 다음에 추가됨을 의미합니다. .loc
를 사용하여 특정 위치에 행을 삽입할 수도 있습니다. 예를 들어, 데이터 프레임의 두 번째 행 다음에 새로운 행을 삽입하려면 다음과 같이 할 수 있습니다.
# inserting a new row after the second row
df.loc[2.5] = ['Peter', 37, 'Los Angeles']
print(df)
출력:
Name Age City
0 John 25 New York
1 Sara 34 London
2 Tim 41 Paris
2.5 Peter 37 Los Angeles
3 Anna 29 Berlin
여기에서는 2
라벨 다음에 2.5
라벨을 사용하여 새로운 행을 삽입합니다. Pandas는 자동으로 행 레이블을 오름차순으로 유지하기 위해 재정렬합니다.
.append
메소드를 사용하여 행 추가하기
Pandas의 .append
메소드는 두 개의 DataFrame을 수직으로 결합하는 것을 가능하게 합니다. .append
메소드에 하나의 행을 갖는 DataFrame을 전달하여 DataFrame에 새로운 행을 추가할 수 있습니다. 다음은 예시입니다.
# creating a new row as a dataframe
new_row = pd.DataFrame({
'Name': ['Julia'],
'Age': [31],
'City': ['Tokyo']
})
# using .append to add the new row
df = df.append(new_row, ignore_index=True)
print(df)
출력:
Name Age City
0 John 25 New York
1 Sara 34 London
2 Tim 41 Paris
3 Anna 29 Berlin
4 Julia 31 Tokyo
위의 코드에서 `new_row`라는 새로운 데이터프레임을 먼저 만든 다음, `.append` 메소드를 사용하여 `new_row`를 전달합니다. `ignore_index=True` 매개변수는 Pandas에게 데이터프레임을 0에서 4로 다시 색인하도록 지시합니다.
## `.concat` 메소드를 사용하여 여러 행 추가하기
Pandas의 `.concat` 메소드를 사용하면 지정된 축을 따라 두 개의 데이터프레임을 연결할 수 있습니다. `.concat` 메소드에 데이터프레임 목록을 전달하여 데이터프레임에 여러 행을 추가할 수 있습니다. 다음은 `.concat`을 사용하여 `df`에 두 개의 새로운 행을 추가하는 방법입니다.
```python
# creating two new rows as dataframes
new_rows = [pd.DataFrame({
'Name': ['Maria', 'Adam'],
'Age': [27, 45],
'City': ['Sydney', 'Toronto']}),
]
# using .concat to add the new rows
df = pd.concat([df] + new_rows, ignore_index=True)
print(df)
출력:
Name Age City
0 John 25 New York
1 Sara 34 London
2 Tim 41 Paris
3 Anna 29 Berlin
4 Maria 27 Sydney
5 Adam 45 Toronto
위의 코드에서 우리는 먼저 두 개의 새로운 데이터프레임 new_rows
를 만듭니다. 그런 다음 df
와 함께 리스트로 전달하여 .concat
메소드에 전달합니다. ignore_index=True
매개변수는 인덱스를 0에서 5로 다시 정렬합니다.
결론
이 튜토리얼에서는 Python의 Pandas 데이터프레임에 새로운 행을 추가하기 위해 .loc
, .append
, .concat
세 가지 다른 방법을 살펴보았습니다. 각각의 방법은 상황에 따라 장단점이 있습니다. .loc
메소드는 특정 위치에 하나의 행을 추가하려는 경우 유용합니다. .append
메소드는 데이터프레임 끝에 하나의 행을 간단하게 추가하는 방법입니다. .concat
메소드는 한 번에 여러 행을 추가하려는 경우 이상적입니다. 이러한 방법을 알면 데이터 분석 및 기계 학습 프로젝트에서 데이터프레임을 효율적으로 조작할 수 있습니다. 즐거운 코딩하세요!