programing

판다에서 개체별로 한 그룹에 속한 그룹의 수를 구하는 방법은?

padding 2023. 10. 30. 20:47
반응형

판다에서 개체별로 한 그룹에 속한 그룹의 수를 구하는 방법은?

이것은 유용할 것입니다. 그래서 저는 제가 몇 개의 독특한 그룹에 대해 계산을 수행해야 하는지 알 수 있습니다.감사해요.

개체별 그룹을 다음과 같이 가정합니다.dfgroup.

심플하고 빠르고 팬더식:ngroups

API별 그룹의 최신 버전(pandas > = 0.23)은 GroupBy 개체의 그룹 수를 저장하는 이(문서화되지 않은) 특성을 제공합니다.

# setup
df = pd.DataFrame({'A': list('aabbcccd')})
dfg = df.groupby('A')
# call `.ngroups` on the GroupBy object
dfg.ngroups
# 4

이것은 실제 그룹 자체를 반환하는 것과는 다릅니다.

내가 왜 이것보다 이것을 선호해야 합니까?len?

브렌 반의 답변에서 언급된 것처럼, 당신은 다음과 같은 방법을 사용할 수 있습니다.len(dfg)그룹의 수를 구합니다.하지만 그러면 안됩니다.(무엇이 무엇인지)의 구현을 살펴봅니다.len()내부적으로 호출), 우리는 그것을(를) 봅니다.__len__에 호출하여 그룹화된 인덱스 사전을 반환합니다.

dfg.groups
{'a': Int64Index([0, 1], dtype='int64'),
 'b': Int64Index([2, 3], dtype='int64'),
 'c': Int64Index([4, 5, 6], dtype='int64'),
 'd': Int64Index([7], dtype='int64')}

작업 중인 그룹의 수에 따라 사전의 길이를 찾기 위해 사전을 생성하는 것은 낭비적인 단계입니다.ngroups반면, 저장된 속성은 일정한 시간에 액세스할 수 있습니다.

이는 개체 특성에 문서화되어 있습니다.의 문제.len, 그러나 그룹이 많은 GroupBy 개체의 경우 이 작업이 훨씬 더 오래 걸릴 수 있습니다.

하지만 제가 실제로 각 그룹의 크기를 원한다면요?

운이 좋으시네요.우리는 그것에 대한 기능이 있습니다.GroupBy.size. 하지만 참고해주세요.sizeNaNs도 계산합니다.NaN을 계산하지 않으려면 다음을 사용합니다.GroupBy.count대신.

문서화된 대로, 다음과 같은 그룹의 수를 얻을 수 있습니다.len(dfgroup).

언급URL : https://stackoverflow.com/questions/27787930/how-to-get-number-of-groups-in-a-groupby-object-in-pandas

반응형