Skip to content

Pandas DataFrame에 행과 열을 전문가처럼 추가하는 방법

Updated on

Pandas는 매우 효율적인 오픈 소스 Python 라이브러리로서 데이터 과학자들에게 필수적인 도구입니다. 그것의 강점은 구조화된 데이터를 유연하고 쉽게 조작할 수 있는 능력에 있습니다. Pandas의 기본 데이터 구조 중 하나인 DataFrame은 대용량 데이터 집합을 효율적으로 처리할 수 있는 능력 때문에 널리 사용됩니다.

Pandas DataFrame을 사용할 때 일반적인 작업 중 하나는 데이터 추가입니다. 이 작업에는 행 추가, 열 추가 또는 전체 DataFrame 추가가 포함될 수 있습니다. 처음에는 다소 어려울 수 있지만, append 함수를 마스터하면 쉽게 할 수 있습니다. 그러므로, Pandas의 DataFrame append 함수를 어떻게 활용할 수 있는지 깊이 알아보겠습니다.

코드 없이 Python Pandas DataFrame에서 데이터 시각화를 빠르게 생성하고 싶나요?

PyGWalker는 시각화와 함께 탐색적 데이터 분석을 위한 Python 라이브러리입니다. PyGWalker (opens in a new tab)는 pandas 데이터프레임과 polars 데이터프레임을 Tableau 스타일의 사용자 인터페이스로 변환하여 Jupyter Notebook 데이터 분석 및 시각화 작업을 간소화할 수 있습니다.

데이터 시각화를 위한 PyGWalker (opens in a new tab)

Pandas DataFrame Append 함수

Pandas DataFrame append 함수는 다른 DataFrame 객체의 행을 추가하고 새로운 DataFrame을 반환하는 데 사용됩니다. 이 함수는 원본 DataFrame을 변경하지 않고 원본과 추가된 데이터를 결합하여 새로운 DataFrame을 생성하는 것이 중요합니다.

Pandas의 Append 함수 구문

append() 함수의 기본 구문은 다음과 같습니다:

DataFrame.append(other, ignore_index=False, sort=False)
  • other: DataFrame, Series, 사전 또는 이들의 목록으로 append할 데이터를 정의합니다.
  • ignore_index: True인 경우 결과 DataFrame의 인덱스는 0, 1, ..., n으로 레이블이 지정됩니다. 기본값은 False입니다.
  • sort: 비연결 축을 정렬할지 여부를 정의합니다. 기본값은 False입니다.

예를 통해 append 함수를 실제로 살펴보겠습니다.

DataFrame에 행

추가하기

import pandas as pd
 
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                    'B': ['B0', 'B1', 'B2'],
                    'C': ['C0', 'C1', 'C2'],
                    'D': ['D0', 'D1', 'D2']},
                    index=[0, 1, 2])
 
df2 = pd.DataFrame({'A': 'A3',
                    'B': 'B3',
                    'C': 'C3',
                    'D': 'D3'},
                    index=[3])
 
df1 = df1.append(df2)
 
print(df1)

위 예제에서 df1은 원래의 DataFrame이고 df2가 이에 추가됩니다. 결과적으로, DataFrame에는 df1df2의 모든 행이 포함됩니다.

여러 DataFrame 연결하기

여러 개의 DataFrame을 연결하는 것도 간단한 과정입니다. append 함수는 연결할 DataFrame의 목록을 가져올 수 있습니다. 다음 예를 살펴보세요:

df3 = pd.DataFrame({'A': 'A4',
                    'B': 'B4',
                    'C': 'C4',
                    'D': 'D4'},
                    index=[4])
 
df1 = df1.append([df2, df3])
 
print(df1)

이 예에서 df2df3를 동시에 df1에 추가합니다.

Pandas의 DataFrame Append vs Concat

Pandas의 append() 함수와 concat() 함수의 차이에 대해 궁금할 수 있습니다. 두 함수 모두 유사한 목적을 제공하는 것처럼 보입니다. append()는 사실상 concat()의 특수한 경우이지만 concat() 함수는 행 축 (axis=0) 또는 열 축 (axis=1)을 따라 데이터를 추가하는 등 더 큰 유연성을 제공합니다. 이러한 더 넓은 기능성은 concat() 함수가 더 복잡한 데이터 조작 작업에 더 강력한 도구일 수 있다는 것을 의미합니다. 그러나 단순한 추가 작업에는 append() 함수만으로도 충분합니다.

Pandas DataFrame에 열 추가하기

DataFrame에 열을 추가하는 것은 DataFrame의 새로운 열에 데이터를 할당하는 것으로 간단히 수행할 수 있습니다. 예를 들어:

df1['E'] = ['E0', 'E1', 'E2', 'E3', 'E4']
print(df1)

위 예에서 df1에 새로운 열 'E'가 추가됩니다. 새 열은 'E0', 'E1', 'E2', 'E3', 'E4'의 값으로 초기화됩니다.

Python DataFrame에 For 루프의 출력 추가하기

For 루프의 출력을 DataFrame에 추가할 수도 있습니다. 이는 루프에서 데이터를 처리하거나 생성하는 경우 유용할

수 있습니다. 다음 예를 살펴보겠습니다:

df = pd.DataFrame(columns=['A', 'B', 'C'])
 
for i in range(5):
    df = df.append({'A': i, 'B': i*2, 'C': i+3}, ignore_index=True)
 
print(df)

위 예에서는 루프의 각 반복마다 새로운 행이 생성되어 DataFrame df에 추가됩니다.

Pandas에서 DataFrame 행 추가의 최적 방법

append() 함수는 DataFrame에 데이터를 추가하는 데 사용하기 쉬운 도구이지만 항상 새로운 DataFrame을 반환하므로 루프에서 행을 추가하는 경우 메모리 소비가 많아질 수 있습니다.

많은 수의 행을 추가해야하는 경우, 행의 목록을 만들고 한 번에 DataFrame으로 변환하는 것이 더 효율적입니다:

rows_list = []
for i in range(100000):
    dict1 = {'A': i, 'B': i*2, 'C': i+3}
    rows_list.append(dict1)
 
df = pd.DataFrame(rows_list)

위 예에서는 DataFrame이 한 번만 생성되므로 메모리와 처리 시간을 절약할 수 있습니다.

append() 함수를 사용한 Pandas DataFrame 병합 방법

merge()join() 함수는 DataFrame을 병합하거나 결합하는 데 특별히 설계된 함수이지만, 데이터프레임이 동일한 열을 가지고 있는 경우 append() 함수를 사용하여 동일한 작업을 수행할 수도 있습니다:

df1 = df1.append(df2, ignore_index=True)

위 예에서 df2df1의 끝에 추가되어 두 DataFrame이 병합됩니다.

결론

이 글에서는 Pandas의 append() 함수를 사용하여 DataFrame에 행과 열을 추가하는 방법, 여러 개의 DataFrame을 추가하는 방법, 열을 추가하는 방법 및 for 루프의 출력을 추가하는 방법에 대해 상세히 다루었습니다. append() 함수는 편리하고 사용하기 쉽지만 대량의 데이터 집합의 경우 다른 방법이 더 효율적일 수 있음을 기억하세요.

자주 묻는 질문

  1. Pandas의 DataFrame append 함수는 어떤 용도로 사용되나요?

    Pandas의 DataFrame append 함수는 다른 DataFrame 객체의 행을 주어진 DataFrame의 끝에 추가하여 새로운 DataFrame 객체를 반환하는 데 사용됩니다. 원본 DataFrame을 수정하지 않고 원본과 추가된 데이터를 포함하는 새로운 DataFrame을 생성합니다.

  2. append() 함수를 사용하여 여러 개의 DataFrame을 추가할 수 있나요?

    네, append() 함수를 사용하여 여러 개의 DataFrame을 추가할수 있습니다. 리스트로 구성된 DataFrame들을 함께 추가할 수 있습니다.

  3. DataFrame에 데이터를 추가하는 데 append() 함수를 사용하는 것이 좋은 방법인가요?

    append() 함수는 사용하기 쉽고 많은 경우에 적합하지만, 대형 DataFrame의 경우 가장 효율적인 방법은 항상 새로운 DataFrame을 반환하므로 append() 함수를 사용하는 것이 아닐 수도 있습니다. 대신 행이나 열의 목록을 만들고 이 목록을 한 번에 DataFrame으로 변환하는 것이 좋습니다.