>  기사  >  백엔드 개발  >  Pandas DataFrame 수정이 때때로 원본 DataFrame에 영향을 미치는 이유는 무엇입니까?

Pandas DataFrame 수정이 때때로 원본 DataFrame에 영향을 미치는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-08 03:21:01489검색

Why do Pandas DataFrame modifications sometimes affect the original DataFrame?

Pandas에서 DataFrame 복사의 필요성 이해

Pandas 데이터 프레임으로 작업할 때 데이터프레임은 중요한 의미를 가질 수 있습니다. 기본적으로 데이터프레임을 인덱싱하면 원래 데이터 구조에 대한 참조가 반환됩니다. 따라서 하위 집합을 수정하면 상위 프레임이 직접 수정됩니다.

이 동작을 설명하려면 다음 예를 고려하세요.

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

출력:

   x
0 -1
1  2

보시다시피 하위 집합의 값을 수정하면 원본 데이터 프레임의 해당 값이 직접 변경됩니다.

상황에 따라 원본 데이터프레임을 수정으로부터 보호하는 것이 필수적인 경우 복사가 필요합니다. 이는 .copy() 메소드를 사용하여 달성할 수 있습니다. 예는 다음과 같습니다.

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

출력:

   x
0  1
1  2

이 경우 .copy()는 df_sub_copy에 대한 변경 사항이 원본 df에 영향을 미치지 않도록 합니다.

이 동작은 전체 복사에만 적용된다는 점을 이해하는 것이 중요합니다. 즉, 전체 참조 데이터가 새 개체에 복사된다는 의미입니다. 반면, 단순 복사본은 원본과 동일한 기본 데이터를 참조하는 새 개체를 만듭니다. 따라서 얕은 복사본에 대한 변경 사항은 원본 데이터 프레임에도 영향을 미칩니다.

위 내용은 Pandas DataFrame 수정이 때때로 원본 DataFrame에 영향을 미치는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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