>  기사  >  백엔드 개발  >  Pandas에서 최소값 선택을 사용하여 Groupby 중에 열을 보존하는 방법은 무엇입니까?

Pandas에서 최소값 선택을 사용하여 Groupby 중에 열을 보존하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-25 08:18:02174검색

How to Preserve Columns During Groupby with Minimum Value Selection in Pandas?

최소값 선택으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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