>백엔드 개발 >파이썬 튜토리얼 >Pandas DataFrame의 여러 필드에 대한 점수 차이를 계산하는 방법은 무엇입니까?

Pandas DataFrame의 여러 필드에 대한 점수 차이를 계산하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-31 01:16:03584검색

How to Calculate the Difference in Scores for Multiple Fields in a Pandas DataFrame?

차이 계산을 사용하는 다중 필드의 Pandas 그룹화

프로그래밍에서 데이터 조작은 매우 중요하며 Pandas는 이러한 작업을 수행하기 위한 강력한 라이브러리입니다. 효율적으로. 일반적인 질문 중 하나는 데이터를 여러 필드로 그룹화하고 차이를 계산하는 방법입니다. 이를 달성하는 방법을 살펴보겠습니다.

문제:

다음 구조의 DataFrame을 고려해보세요.

         date    site country  score
0  2018-01-01  google      us    100
1  2018-01-01  google      ch     50
2  2018-01-02  google      us     70
3  2018-01-03  google      us     60
... 

목표는 '사이트/국가' 조합별로 점수가 1/3/5일 차이가 납니다.

해결책:

이 문제를 해결하기 위해 Pandas의 groupby를 활용할 수 있습니다. 및 diff 기능:

  1. DataFrame 정렬:
df = df.sort_values(by=['site', 'country', 'date'])

정렬을 사용하면 데이터가 적절한 그룹화 및 차이 계산을 위해 구성됩니다.

  1. Groupby 및 차이 계산:
df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)

이 줄은 groupby를 사용하여 DataFrame을 '사이트' 및 '국가' 열별로 그룹화합니다. 그런 다음 diff를 사용하여 각 그룹 내 연속된 각 점수 간의 차이를 계산합니다. 결과는 'diff'라는 새 열에 저장됩니다. 누락된 값은 fillna(0)을 사용하여 0으로 대체됩니다.

출력:

결과 DataFrame에는 'diff' 열과 함께 원래 열이 포함됩니다.

         date    site country  score  diff
0  2018-01-01      fb      es    100   0.0
1  2018-01-02      fb      gb    100   0.0
...

추가 참고사항:

  • 임의 정렬이 필요한 경우(예: 'fb'보다 'google' 우선순위 지정)에서 순서를 지정할 수 있습니다. 목록을 작성하고 열을 범주형으로 설정한 후 정렬하세요.
  • fillna(0) 함수는 누락된 값을 0으로 대체하지만 이를 원하는 값으로 변경할 수 있습니다.
  • 이 방법을 사용할 수 있습니다. 특정 시간 간격(예: 1일, 3개월 등)에 따른 차이를 계산합니다.

위 내용은 Pandas DataFrame의 여러 필드에 대한 점수 차이를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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