다음과 같은 데이터 프레임이 있습니다.
cluster org time
1 a 8
1 a 6
2 h 34
1 c 23
2 d 74
3 w 6
클러스터 당 조직 당 평균 시간을 계산하고 싶습니다.
예상 결과:
cluster mean(time)
1 15 ((8+6)/2+23)/2
2 54 (74+34)/2
3 6
나는 판다에서 그것을하는 방법을 모른다. 누구든지 도울 수 있습니까?
답변
먼저 조합에 대한 ['cluster', 'org']
평균을 cluster
취한 다음 그룹 에 대한 평균을 취 하려면 다음을 사용할 수 있습니다.
In [59]: (df.groupby(['cluster', 'org'], as_index=False).mean()
.groupby('cluster')['time'].mean())
Out[59]:
cluster
1 15
2 54
3 6
Name: time, dtype: int64
cluster
그룹 의 평균 만 원하는 경우 다음을 사용할 수 있습니다.
In [58]: df.groupby(['cluster']).mean()
Out[58]:
time
cluster
1 12.333333
2 54.000000
3 6.000000
groupby
on ['cluster', 'org']
을 사용한 다음 사용할 수도 있습니다 mean()
.
In [57]: df.groupby(['cluster', 'org']).mean()
Out[57]:
time
cluster org
1 a 438886
c 23
2 d 9874
h 34
3 w 6
답변
나는 단순히 당신이 원하는 논리가 무엇인지를 문자 그대로 따르는 이것을 할 것입니다.
df.groupby(['org']).mean().groupby(['cluster']).mean()