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