GroupBy 시 다른 열 유지
Pandas 데이터 프레임에서 특정 열을 기준으로 행을 필터링하기 위해 groupby를 사용하면 다른 열이 손실될 수 있습니다. 출력의 열. 이 문제는 열의 최소값 찾기 및 임계값 아래 행 제외와 같은 그룹 작업을 수행할 때 발생합니다.
이 제한을 극복하고 그룹화 중에 다른 열을 유지하려면 다음과 같은 몇 가지 방법이 있습니다.
방법 1: idxmin() 사용
idxmin()은 해당 열에 대해 최소값을 갖는 행의 인덱스를 반환합니다. 이를 사용하면 특정 행을 선택하고 해당 열을 모두 유지할 수 있습니다.
<code class="python">df_filtered = df.loc[df.groupby("item")["diff"].idxmin()]</code>
방법 2: 정렬 및 첫 번째
열을 기준으로 데이터 프레임 정렬 필터링한 다음 각 그룹의 첫 번째 요소를 가져오면 다른 열도 보존됩니다.
<code class="python">df_filtered = 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]}) # Method 1 df_filtered1 = df.loc[df.groupby("item")["diff"].idxmin()] # Method 2 df_filtered2 = df.sort_values("diff").groupby("item", as_index=False).first() print(df_filtered1) print(df_filtered2)</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 중국어 웹사이트의 기타 관련 기사를 참조하세요!