"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Pandas에서 체인 할당이 효율적인가요?

Pandas에서 체인 할당이 효율적인가요?

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

Are Chained Assignments Efficient in Pandas?

Pandas의 연결 할당

소개

인기 있는 데이터 조작 라이브러리인 Pandas의 연결 할당은 데이터 프레임의 값에 대해 연속적으로 수행되는 작업입니다. 작업이 제대로 처리되지 않으면 성능 문제가 발생할 수 있습니다.

연결된 할당 경고

Pandas는 연결 할당의 잠재적인 비효율성을 나타내기 위해 SettingWithCopy 경고를 발행합니다. 경고는 할당이 원래 데이터 프레임을 의도한 대로 업데이트하지 않을 수 있음을 사용자에게 경고합니다.

사본 및 참조

Pandas 시리즈 또는 데이터 프레임이 참조되면 복사본이 반환됩니다. 참조된 개체가 이후에 수정되면 오류가 발생할 수 있습니다. 예를 들어 다음 코드는 예상대로 동작하지 않을 수 있습니다.

data['amount'] = data['amount'].fillna(float)

위 할당은 data['amount'] 시리즈의 사본이 업데이트됩니다. 이렇게 하면 원본 데이터 프레임이 업데이트되는 것을 방지할 수 있습니다.

Inplace 작업

불필요한 복사본 생성을 방지하기 위해 Pandas는 .inplace(True)로 표시되는 내부 작업을 제공합니다. 이러한 작업은 원래 데이터 프레임을 직접 수정합니다.

data['amount'].fillna(data.groupby('num')['amount'].transform('mean'), inplace=True)

연속 할당 방지의 이점

내부 연산이나 별도 할당을 사용하면 여러 가지 이점이 있습니다. 장점:

  • 불필요한 복사를 방지하여 성능을 향상시킵니다.
  • 데이터 수정을 명시적으로 표시하여 코드 명확성을 향상합니다.
  • 복사본에서 여러 작업을 연결할 수 있습니다. 예:
data['amount'] = data['amount'].fillna(mean_avg) * 2

결론

Pandas의 체인 할당을 이해하는 것은 코드 효율성을 최적화하고 데이터 수정 오류를 방지하는 데 중요합니다. 이 문서에 설명된 권장 사례를 준수하면 Pandas 작업의 정확성과 성능을 보장할 수 있습니다.

릴리스 선언문 이 글은 1729721319에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

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

Copyright© 2022 湘ICP备2022001581号-3