"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Pandas DataFrame에 여러 열을 동시에 효율적으로 추가하는 방법은 무엇입니까?

Pandas DataFrame에 여러 열을 동시에 효율적으로 추가하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:699

How to Efficiently Add Multiple Columns to a Pandas DataFrame Simultaneously?

Pandas DataFrame에 여러 열을 동시에 추가

Pandas 데이터 조작에서 DataFrame에 여러 개의 새 열을 효율적으로 추가하는 것은 우아한 솔루션이 필요한 작업일 수 있습니다. 등호와 함께 열 목록 구문을 사용하는 직관적인 접근 방식은 간단해 보이지만 예상치 못한 결과가 발생할 수 있습니다.

과제

제공된 예에 설명된 대로 다음 구문은 의도한 대로 새 열을 생성하지 못했습니다:

df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]

Pandas에서는 열 목록 구문을 사용할 때 할당의 오른쪽이 DataFrame이어야 하기 때문입니다. 스칼라 값 또는 목록은 이 접근 방식과 호환되지 않습니다.

솔루션

여러 열을 동시에 추가하기 위한 실행 가능한 솔루션을 제공하는 여러 대체 방법:

방법 1: 개별 할당 반복자 압축 풀기 사용

df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3

방법 2: 인덱스와 일치하도록 단일 행 확장

df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)

방법 3: pd.concat을 사용하여 임시 DataFrame과 결합

df = pd.concat(
    [
        df,
        pd.DataFrame(
            [[np.nan, 'dogs', 3]], 
            index=df.index, 
            columns=['column_new_1', 'column_new_2', 'column_new_3']
        )
    ], axis=1
)

방법 4: .join

df = df.join(pd.DataFrame(
    [[np.nan, 'dogs', 3]], 
    index=df.index, 
    columns=['column_new_1', 'column_new_2', 'column_new_3']
))

방법 5: 임시 DataFrame에 사전 사용

df = df.join(pd.DataFrame(
    {
        'column_new_1': np.nan,
        'column_new_2': 'dogs',
        'column_new_3': 3
    }, index=df.index
))

방법 6: 여러 열 인수와 함께 .zip() 사용

df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)

메서드 7: 열 생성 후 값 할당

new_cols = ['column_new_1', 'column_new_2', 'column_new_3']
new_vals = [np.nan, 'dogs', 3]
df = df.reindex(columns=df.columns.tolist()   new_cols)    # add empty cols
df[new_cols] = new_vals        # multi-column assignment works for existing cols

방법 8: 다중 순차 할당

df['column_new_1'] = np.nan
df['column_new_2'] = 'dogs'
df['column_new_3'] = 3

가장 적절한 방법을 선택하는 것은 DataFrame의 크기, 추가할 새 열 수, 작업의 성능 요구 사항과 같은 요소에 따라 달라집니다. 그럼에도 불구하고 이러한 기술은 Pandas 사용자에게 DataFrames에 여러 열을 효율적으로 추가할 수 있는 다양한 옵션을 제공합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3