Pandas 데이터 조작에서 DataFrame에 여러 개의 새 열을 효율적으로 추가하는 것은 우아한 솔루션이 필요한 작업일 수 있습니다. 등호와 함께 열 목록 구문을 사용하는 직관적인 접근 방식은 간단해 보이지만 예상치 못한 결과가 발생할 수 있습니다.
제공된 예에 설명된 대로 다음 구문은 의도한 대로 새 열을 생성하지 못했습니다.
<code class="python">df[['column_new_1', 'column_new_2', 'column_new_3']] = [np.nan, 'dogs', 3]</code>
Pandas에서는 열 목록 구문을 사용할 때 할당의 오른쪽이 DataFrame이어야 하기 때문입니다. 스칼라 값 또는 목록은 이 접근 방식과 호환되지 않습니다.
여러 열을 동시에 추가하기 위한 실행 가능한 솔루션을 제공하는 여러 대체 방법:
방법 1: 개별 할당 반복자 압축 풀기 사용
<code class="python">df['column_new_1'], df['column_new_2'], df['column_new_3'] = np.nan, 'dogs', 3</code>
방법 2: 단일 행을 확장하여 인덱스 일치
<code class="python">df[['column_new_1', 'column_new_2', 'column_new_3']] = pd.DataFrame([[np.nan, 'dogs', 3]], index=df.index)</code>
방법 3: 임시 DataFrame과 결합 사용 pd.concat
<code class="python">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 )</code>
방법 4: .join을 사용하여 임시 DataFrame과 결합
<code class="python">df = df.join(pd.DataFrame( [[np.nan, 'dogs', 3]], index=df.index, columns=['column_new_1', 'column_new_2', 'column_new_3'] ))</code>
방법 5: 임시용 사전 사용 DataFrame
<code class="python">df = df.join(pd.DataFrame( { 'column_new_1': np.nan, 'column_new_2': 'dogs', 'column_new_3': 3 }, index=df.index ))</code>
방법 6: 여러 열 인수에 .zip() 사용
<code class="python">df = df.assign(column_new_1=np.nan, column_new_2='dogs', column_new_3=3)</code>
방법 7: 열 생성 후 값 할당
<code class="python">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</code>
방법 8: 다중 순차 할당
<code class="python">df['column_new_1'] = np.nan df['column_new_2'] = 'dogs' df['column_new_3'] = 3</code>
가장 적절한 방법을 선택하는 것은 DataFrame의 크기, 추가할 새 열 수 및 작업의 성능 요구 사항. 그럼에도 불구하고 이러한 기술은 Pandas 사용자에게 DataFrames에 여러 열을 효율적으로 추가할 수 있는 다양한 옵션을 제공합니다.
위 내용은 Pandas DataFrame에 여러 열을 동시에 효율적으로 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!