최소값 선택으로 Groupby 중 열 보존
문제:
groupby 수행 시 특정 열에 대해 최소값이 있는 행을 선택하기 위해 pandas 데이터프레임에서 작업을 수행하면 다른 열이 실수로 삭제되는 경우가 많습니다. 이는 이러한 열의 추가 정보가 필요한 경우 문제가 될 수 있습니다.
해결책 1: 인덱스 선택에 idxmin() 사용
다른 열을 보존하려면 다음과 같은 접근 방식을 사용하세요. idxmin()을 사용하여 지정된 열에 대해 최소값을 가진 요소의 인덱스를 얻습니다. 그런 다음 이러한 인덱스를 사용하여 원본 데이터 프레임에서 해당 행을 선택할 수 있습니다.
<code class="python">df_min = df.loc[df.groupby("item")["diff"].idxmin()]</code>
해결책 2: 첫 번째 요소 정렬 및 선택
대체 방법은 다음과 같습니다. 최소값 열을 기준으로 데이터프레임을 정렬한 다음 각 그룹에서 첫 번째 요소를 선택합니다.
<code class="python">df_min = df.sort_values("diff").groupby("item", as_index=False).first()</code>
예:
이 두 솔루션 모두 원하는 결과를 얻습니다. 지정된 열에 대해 최소값을 가진 행을 선택하는 동안 다른 열을 보존합니다:
<code class="python">df = pd.DataFrame({ "item": [1, 1, 1, 2, 2, 2, 2, 3, 3], "diff": [2, 1, 3, -1, 1, 4, -6, 0, 2], "otherstuff": [1, 2, 7, 0, 3, 9, 2, 0, 9] }) df_min_idx = df.loc[df.groupby("item")["diff"].idxmin()] df_min_sort = df.sort_values("diff").groupby("item", as_index=False).first() print(df_min_idx) print(df_min_sort)</code>
출력:
item diff otherstuff 1 1 1 2 6 2 -6 2 7 3 0 0 item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0
위 내용은 Pandas에서 최소값 선택을 사용하여 Groupby 중에 열을 보존하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!