>백엔드 개발 >파이썬 튜토리얼 >열의 고유 값을 기반으로 Pandas DataFrame을 여러 DataFrame으로 분할하는 방법은 무엇입니까?

열의 고유 값을 기반으로 Pandas DataFrame을 여러 DataFrame으로 분할하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-12 15:29:11799검색

How to Split a Pandas DataFrame into Multiple DataFrames Based on a Column's Unique Values?

Groupby를 사용하여 열 값을 기준으로 Pandas DataFrame 분할

이 문서에서는 DataFrame을 여러 부분으로 분할하는 문제에 대한 솔루션을 제시합니다. 특정 열 내의 고유 값에 대해.

다음을 고려하세요. DataFrame:

import pandas as pd

df = pd.DataFrame({
    "N0_YLDF": [6.286333, 6.317000, 6.324889, 6.320667, 6.325556, 6.359000, 6.359000, 6.361111, 6.360778, 6.361111],
    "ZZ": [2, 6, 6, 5, 5, 6, 6, 7, 7, 6],
    "MAT": [11.669069, 11.669069, 11.516454, 11.516454, 11.516454, 11.516454, 11.516454, 11.516454, 11.516454, 11.516454]
})

목표는 "N0_YLDF" 열에 대해 여러 열이 있고 각 열이 "ZZ" 열의 고유 값에 해당하는 새 DataFrame을 만드는 것입니다. 이를 달성하기 위해 groupby() 함수를 활용할 수 있습니다.

grouped_df = df.groupby("ZZ")

groupby() 함수는 pandas.core.groupby.groupby.DataFrameGroupBy 객체를 생성합니다. 이 객체는 다음에 따라 그룹이 분할된 DataFrame을 나타냅니다. 지정된 열의 값입니다. 이 경우에는 4개의 그룹이 있습니다.

print(grouped_df.groups)

# Output
{2: [0], 6: [1, 2, 5, 6, 9], 5: [3, 4], 7: [7, 8]}

각 그룹에 대한 개별 DataFrame을 얻으려면 목록 이해를 사용할 수 있습니다.

split_dfs = [grouped_df.get_group(key) for key in grouped_df.groups]

get_group() 메서드는 DataFrame을 반환합니다. 지정된 그룹에 속하는 행을 포함합니다.

결과로 나오는 분할_dfs 목록에는 각각 다른 값을 나타내는 4개의 DataFrame이 포함됩니다. "ZZ" 열에 있습니다.

예를 들어 "ZZ" 값이 6인 그룹의 DataFrame에 액세스하려면 다음을 사용할 수 있습니다.

split_df_6 = split_dfs[1]

이렇게 하면 DataFrame이 제공됩니다. 다음 행 포함:

   N0_YLDF   ZZ        MAT
1  6.317000   6  11.669069
2  6.324889   6  11.516454
5  6.359000   6  11.516454
6  6.359000   6  11.516454
9  6.361111   6  11.516454

groupby() 함수와 get_group() 메서드를 활용하면 DataFrame을 효과적으로 분할할 수 있습니다. 지정된 열의 값을 기준으로 여러 부분으로 나눕니다.

위 내용은 열의 고유 값을 기반으로 Pandas DataFrame을 여러 DataFrame으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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