여러 문자열 열이 포함된 데이터를 정리하려면 특정 열을 기준으로 행을 그룹화하고 가장 많은 값을 선택해야 합니다. 각 그룹 내의 특정 열에 대한 공통 값입니다. 이 문서에서는 강력한 Pandas 라이브러리를 사용하여 이 작업을 수행하는 방법을 보여줍니다.
초기 쿼리에 제공된 코드에는 몇 가지 오류가 포함되어 있으며 아래에서 수정되었습니다.
import pandas as pd source = pd.DataFrame({ 'Country': ['USA', 'USA', 'Russia', 'USA'], 'City': ['New York', 'New York', 'Saint Petersburg', 'New York'], 'Short Name': ['NY', 'New', 'Spb', 'NY']}) # Group by 'Country' and 'City' and calculate the most frequent 'Short Name' in each group result = source.groupby(['Country', 'City'])['Short Name'].apply(lambda x: pd.Series.mode(x)[0][0])
결과적으로 DataFrame이 선호되는 경우:
result = source.groupby(['Country', 'City'])['Short Name'].agg(pd.Series.mode).to_frame()
각각 별도의 행을 원하는 경우 mode:
result = source.groupby(['Country', 'City'])['Short Name'].apply(pd.Series.mode)
참고: 모드 값을 선택 항목으로 허용하려면 시리즈에서 첫 번째 모드를 추출하는 람다 함수를 사용할 수 있습니다. :
result = source.groupby(['Country', 'City'])['Short Name'].agg(lambda x: pd.Series.mode(x)[0])
위 내용은 Pandas DataFrame의 각 그룹에서 가장 빈번한 값을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!