적용 및 이동을 사용하여 Pandas DataFrame에서 연속 행 값을 계산하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-28 16:43:02
원래의
583명이 탐색했습니다.

How to Calculate Sequential Row Values in a Pandas DataFrame Using Apply and Shifting?

Pandas가 데이터프레임에서 순차적 행 값 계산을 적용

Pandas 데이터프레임으로 작업할 때 값을 사용해야 하는 상황이 발생할 수 있습니다. 계산에서 이전 행의 그러나 이는 특히 동일한 적용 함수 내에서 이전 값도 계산되는 경우 문제가 될 수 있습니다.

다음 데이터 프레임을 고려하세요.

Index_Date    A   B     C    D
================================
2015-01-31    10   10   Nan   10
2015-02-01     2    3   Nan   22 
2015-02-02    10   60   Nan  280
2015-02-03    10  100   Nan  250
로그인 후 복사

새 열 C를 생성하려고 합니다. , 여기서:

  • 2015-01-31의 경우 C는 D와 같습니다.
  • 다른 모든 행의 경우 C는 이전 행의 C에 현재 행의 A를 곱하여 계산됩니다. , 현재 행의 B.

적용 기능과 if-else 조건이 있는 Shift 사용은 키 오류로 인해 작동하지 않을 수 있습니다. 대신 다음 단계를 따를 수 있습니다.

1단계: 파생 값 초기화

먼저 첫 번째 행의 C 값을 D와 동일하게 설정합니다.

df.loc[0, 'C'] = df.loc[0, 'D']
로그인 후 복사

2단계: 반복 및 계산

다음으로 나머지 행을 반복하고 이전 행의 C 값을 사용하여 C를 계산합니다.

for i in range(1, len(df)):
    df.loc[i, 'C'] = df.loc[i-1, 'C'] * df.loc[i, 'A'] + df.loc[i, 'B']
로그인 후 복사

결과:

  Index_Date   A   B    C    D
0 2015-01-31  10  10   10   10
1 2015-02-01   2   3   23   22
2 2015-02-02  10  60  290  280
3 2015-02-03  10  100  3000  250
로그인 후 복사

위 내용은 적용 및 이동을 사용하여 Pandas DataFrame에서 연속 행 값을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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