> 백엔드 개발 > 파이썬 튜토리얼 > Pandas DataFrame에서 특정 셀 값을 효율적으로 설정하는 방법은 무엇입니까?

Pandas DataFrame에서 특정 셀 값을 효율적으로 설정하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-01 17:28:11
원래의
438명이 탐색했습니다.

How to Efficiently Set a Specific Cell Value in a Pandas DataFrame?

Pandas DataFrame의 특정 셀에 대한 값 설정

DataFrame을 생성했으며 특정 셀의 값을 변경하려고 합니다. . 그러나 df.xs('C')['x'] = 10을 사용하면 예상대로 DataFrame이 업데이트되지 않습니다. 왜?

문제는 df.xs() 작동 방식에서 비롯됩니다. 기본적으로 데이터 복사본과 함께 새 DataFrame을 반환합니다. 따라서 df.xs('C')['x'] = 10은 원본이 아닌 새 DataFrame만 수정합니다.

대신 df['x']['C'] =를 사용할 수 있습니다. 10. 이 메서드는 원본 DataFrame의 뷰를 반환하며 모든 수정 사항은 df에 적용됩니다.

그러나 권장되는 접근 방식은 .at 또는 .iat:

  • df.at['C', 'x'] = 10: 'C' 행과 'x' 열의 값을 직접 설정합니다.
  • df. iat[2, 0] = 10: 인덱스 위치를 사용하여 셀에 액세스합니다(행의 경우 2, 행의 경우 0). 열).

df.xs('C')['x'] = 10이 더 이상 사용되지 않는 이유는 무엇입니까?

df.set_value('C' , 'x', 10)은 훨씬 더 빠르기 때문에 선호되는 방법입니다. 그러나 df.set_value()는 더 이상 사용되지 않을 예정입니다.

성능 비교

벤치마크에 따르면 df.set_value()는 속도 측면에서 다른 옵션보다 성능이 뛰어납니다.

In [18]: %timeit df.set_value('C', 'x', 10)
100000 loops, best of 3: 2.9 µs per loop

In [20]: %timeit df['x']['C'] = 10
100000 loops, best of 3: 6.31 µs per loop

In [81]: %timeit df.at['C', 'x'] = 10
100000 loops, best of 3: 9.2 µs per loop
로그인 후 복사

위 내용은 Pandas DataFrame에서 특정 셀 값을 효율적으로 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿