>  기사  >  백엔드 개발  >  Pandas에서 GroupBy를 사용할 때 다른 열을 유지하는 방법은 무엇입니까?

Pandas에서 GroupBy를 사용할 때 다른 열을 유지하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-24 18:32:48961검색

How to Keep Other Columns When Using GroupBy in Pandas?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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