Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

그룹화된 데이터 공분산을 계산하고 주어진 데이터 프레임의 두 열 사이의 그룹화된 데이터 공분산을 계산하는 프로그램을 Python으로 작성

<시간/>

데이터 프레임이 있고 그룹화된 데이터와 해당 열에서 공분산을 계산한 결과가 다음과 같다고 가정합니다.

그룹화된 데이터 공분산:mark1 mark2subjectsmaths mark1 25.0 12.500000 mark2 12.5 108.333333science mark1 28.0 50.000000 mark2 50.0 233.333333grouped 데이터 공분산 

해결책

이 문제를 해결하기 위해 다음 단계를 따릅니다. -

  • 데이터 프레임 정의

  • 데이터 프레임 주제 열 내부에 groupby 기능 적용

df.groupby('주제')
  • 그룹화된 데이터에 공분산 함수를 적용하고 내부 group_data를 저장,

group_data =df.groupby('subjects').cov()
  • 주제 열의 groupby 레코드가 있는 mark1 및 mark2 열에 람다 함수를 적용합니다. 아래에 정의되어 있습니다.

df.groupby('subjects').apply(lambda x:x['mark1'].cov(x['mark2']

예시

더 나은 이해를 위해 아래 코드를 봅시다 -

판다를 pddf =pd.DataFrame({'subjects':['maths','maths','maths','science','science','science'], 'mark1':[80, 90,85,95,93,85], 'mark2':[85,90,70,75,95,65]})print("DataFrame is:\n",df)group_data =df.groupby('subjects ').cov()print("그룹화된 데이터 공분산:\n", group_data)result =df.groupby('subjects').apply(lambda x:x['mark1'].cov(x['mark2' ]))print("두 열 간의 그룹화된 데이터 공분산:\n",result)

출력

 데이터 프레임은 다음과 같습니다 :제목 Mark1 Mark20 수학 80 851 MACK20 902 수학 85 두 개의 열:subjectsmaths 12.5science 50.0dtype:float64