Skip to content
튜토리얼
Pandas
판다스 데이터프레임에 행 추가하기: 단계별 가이드

판다스 데이터프레임에 행 추가하기: 단계별 가이드

데이터 분석과 기계 학습 프로젝트에서, 기존의 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에서 ⭐️도 부탁드립니다!

Kaggle Notebook에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)PyGWalker의 저장소에서 ⭐️ 부탁드립니다 (opens in a new tab)
Run PyGWalker in Kaggle Notebook (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)

.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 메소드는 한 번에 여러 행을 추가하려는 경우 이상적입니다. 이러한 방법을 알면 데이터 분석 및 기계 학습 프로젝트에서 데이터프레임을 효율적으로 조작할 수 있습니다. 즐거운 코딩하세요!