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