>백엔드 개발 >파이썬 튜토리얼 >Pandas DataFrame 그룹에서 가장 일반적인 값을 효율적으로 찾는 방법은 무엇입니까?

Pandas DataFrame 그룹에서 가장 일반적인 값을 효율적으로 찾는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-29 11:32:15249검색

How to Efficiently Find the Most Common Value in a Pandas DataFrame Group?

GroupBy pandas DataFrame 및 가장 일반적인 값 선택

문제


여러 문자열 열이 있는 데이터 프레임이 있다고 가정합니다. 처음 두 열의 각 조합에는 세 번째 열에 유효한 값이 하나만 있어야 합니다. 처음 두 열로 데이터 프레임을 그룹화하고 각 조합에 대해 세 번째 열의 가장 일반적인 값을 선택하여 데이터를 일관되게 정리해야 합니다.

다음 코드는 다음을 보여줍니다. 이를 달성하려는 시도:


<사전>pd로 pandas 가져오기
from scipy import 통계

source = pd.DataFrame({

source.groupby(['국가','도시']).agg(lambda x: stats.mode(x[' 짧은 name'])[0])

그러나 마지막 코드 줄은 KeyError로 인해 실패합니다. 이 문제를 어떻게 해결할 수 있습니까? 문제가 있습니까?

솔루션


Pandas >= 0.16


Pandas 버전 0.16의 경우 나중에 다음을 사용하십시오. 코드:


source.groupby(['국가','도시'])['약칭'].agg(pd.Series.mode)

이 코드는 Pandas 0.16에서 도입된 pd.Series.mode 함수를 사용하여

여러 모드를 처리하기 위한 대안


Series.mode 함수는 여러 모드가 있는 경우를 효과적으로 처리합니다.


  • 모드가 여러 개인 경우 반환됩니다. 시리즈 모든 모드를 포함합니다.

  • 각 모드에 대해 별도의 행이 필요한 경우 GroupBy.apply(pd.Series.mode)를 사용하세요.< /li>
  • 다음 모드 중 하나가 필요한 경우 다음을 사용하세요. GroupBy.agg(lambda x: pd.Series.mode(x)[0]).

< h4>고려할 대안

할 수 있는 동안 Python의 Statistics.mode를 사용하면 여러 모드를 제대로 처리하지 못하고 StatisticsError가 발생할 수 있습니다. 따라서 권장하지 않습니다.

위 내용은 Pandas DataFrame 그룹에서 가장 일반적인 값을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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