>  기사  >  백엔드 개발  >  하위 집합을 선택할 때 항상 Pandas DataFrame을 복사해야 하는 이유는 무엇입니까?

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

Barbara Streisand
Barbara Streisand원래의
2024-11-08 11:43:01544검색

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()' 메서드를 사용하는 것이 좋습니다.

위 내용은 하위 집합을 선택할 때 항상 Pandas DataFrame을 복사해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Python: 변수다음 기사:Python: 변수