데이터 프레임이 있고 그룹화된 데이터와 해당 열에서 공분산을 계산한 결과가 다음과 같다고 가정합니다.
그룹화된 데이터 공분산: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