> 백엔드 개발 > 파이썬 튜토리얼 > Pandas의 순차적 분석을 위해 DataFrame 루핑을 어떻게 최적화할 수 있나요?

Pandas의 순차적 분석을 위해 DataFrame 루핑을 어떻게 최적화할 수 있나요?

Patricia Arquette
풀어 주다: 2024-11-14 18:41:02
원래의
679명이 탐색했습니다.

How Can I Optimize DataFrame Looping for Sequential Analysis in Pandas?

순차 분석을 위한 데이터프레임 루프 최적화

Pandas에서 데이터프레임으로 작업할 때 대규모 데이터세트에서 복잡한 작업을 수행하려면 효율적인 루프가 매우 중요합니다. 제공된 예에 표시된 것처럼 각 행을 수동으로 반복하는 것은 시간이 많이 걸리고 메모리 집약적일 수 있습니다.

Iterrows() 함수

다행히 최신 버전 pandas는 효율적인 데이터프레임 반복을 위해 특별히 설계된 내장 함수인 iterrows()를 제공합니다. 이 함수는 행 인덱스와 행 값을 나타내는 pandas Series 객체를 포함하는 튜플을 생성하는 반복자를 반환합니다.

for index, row in df.iterrows():
    date = row['Date']
    open, high, low, close, adjclose = row[['Open', 'High', 'Low', 'Close', 'Adj Close']]
    # Perform analysis on open/close based on date
로그인 후 복사

Numpy 함수 사용

그러나 다음과 같은 경우 속도가 가장 중요합니다. numpy 함수를 사용하는 것이 행을 반복하는 것보다 훨씬 빠를 수 있습니다. Numpy는 전체 열에 대해 한 번에 계산을 수행할 수 있는 벡터화된 작업을 제공하여 개별 행에 대한 반복과 관련된 오버헤드를 크게 줄입니다.

예를 들어 종가의 백분율 변화를 계산하려면 다음을 사용하세요.

import numpy as np
close_change = np.diff(df['Close']) / df['Close'][1:] * 100
로그인 후 복사

메모리 최적화

대규모 데이터 프레임을 반복할 때 메모리 사용량을 최적화하려면 iterrows() 대신 itertuples() 메서드를 사용하는 것이 좋습니다. 이 메소드는 명명된 튜플 객체를 생성하는 반복자를 반환하여 pandas Series 객체 생성을 방지하여 메모리 소비를 줄입니다.

for row in df.itertuples():
    date = row.Date
    open, high, low, close, adjclose = row.Open, row.High, row.Low, row.Close, row.Adj_Close
    # Perform analysis on open/close based on date
로그인 후 복사

이러한 최적화된 루프 기술을 활용하면 애플리케이션의 성능과 메모리 효율성을 크게 향상시킬 수 있습니다. 금융 데이터 분석.

위 내용은 Pandas의 순차적 분석을 위해 DataFrame 루핑을 어떻게 최적화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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