"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 하위 집합을 선택할 때 항상 Pandas DataFrame을 복사해야 하는 이유는 무엇입니까?

하위 집합을 선택할 때 항상 Pandas DataFrame을 복사해야 하는 이유는 무엇입니까?

2024년 11월 19일에 게시됨
검색:710

Why Should You Always Copy Pandas DataFrames When Selecting Subsets?

Pandas에서 데이터 프레임 복사의 중요성 이해

Pandas에서는 데이터 프레임의 일부를 선택할 때 '.copy()를 사용하는 것이 일반적입니다. ' 원본 데이터 프레임의 복사본을 만드는 방법입니다. 이 접근 방식을 사용하면 하위 집합에 대한 변경 사항이 상위 데이터 프레임에 영향을 주지 않습니다.

복사해야 하는 이유

기본적으로 데이터 프레임을 인덱싱하면 복사본이 아닌 원본 데이터 프레임의 보기입니다. 이는 하위 집합에 대한 모든 수정 사항이 상위 데이터 프레임에 직접적인 영향을 미친다는 것을 의미합니다. 상위 데이터 프레임의 무결성을 유지하려면 '.copy()' 메서드를 사용하여 복사본을 생성하는 것이 중요합니다.

복사하지 않을 때의 결과

다음을 고려하세요. 다음 코드 조각:

df = pd.DataFrame({'x': [1, 2]})
df_sub = df.iloc[0:1]
df_sub.x = -1

이 예에서 df_sub는 df의 뷰입니다. 결과적으로 df_sub.x를 -1로 설정하면 df.x:

print(df)
   x
0 -1
1  2

복사 이점

데이터 프레임을 복사하면 상위 데이터 프레임이 그대로 유지됩니다. 이는 데이터 프레임에서 여러 작업이 수행될 때 특히 중요하며 나중에 분석하거나 비교하기 위해 원본 데이터를 보존하는 것이 중요합니다.

df_sub_copy = df.iloc[0:1].copy()
df_sub_copy.x = -1

print(df)
   x
0  1
1  2

이 수정된 코드 조각에서 df_sub_copy는 df의 복사본입니다. 결과적으로 df_sub_copy.x를 변경해도 df에는 영향이 없습니다.

참고: 최신 버전의 Pandas에서는 데이터 프레임 인덱싱 동작이 변경되었다는 점에 유의하는 것이 중요합니다. Pandas 1.0 이하에서는 데이터 프레임을 인덱싱하면 기본적으로 복사본이 반환됩니다. 그러나 Pandas 1.1 이상에서는 인덱싱이 뷰를 반환합니다. 여러 버전에서 일관된 동작을 보장하려면 데이터 프레임의 하위 집합을 생성할 때 항상 '.copy()' 메서드를 사용하는 것이 좋습니다.

최신 튜토리얼 더>

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

Copyright© 2022 湘ICP备2022001581号-3