> 백엔드 개발 > 파이썬 튜토리얼 > 데이터 조작을 위해 Pandas DataFrame을 어떻게 녹이고 녹이지 않습니까?

데이터 조작을 위해 Pandas DataFrame을 어떻게 녹이고 녹이지 않습니까?

Susan Sarandon
풀어 주다: 2024-12-25 21:19:14
원래의
238명이 탐색했습니다.

How Do I Melt and Unmelt Pandas DataFrames for Data Manipulation?

Pandas DataFrame을 어떻게 녹이나요?

문제 설명:

Pandas DataFrame을 녹이려면 데이터를 넓은 형식에서 긴 형식으로 바꾸는 작업이 필요합니다. . 이는 분석, 시각화 또는 기타 목적으로 데이터를 조작할 때 유용합니다. 샘플 문제와 해당 솔루션이 포함된 다양한 용해 시나리오를 살펴보겠습니다.

문제 1: 긴 형식으로 변환

질문: DataFrame을 녹여서 다음 형식은 달성되었나요?

    Name  Age  Subject Grade
0    Bob   13  English     C
1   John   16  English     B
2    Foo   16  English     B
3    Bar   15  English    A+
4   Alex   17  English     F
5    Tom   12  English     A
6    Bob   13     Math    A+
7   John   16     Math     B
8    Foo   16     Math     A
9    Bar   15     Math     F
10  Alex   17     Math     D
11   Tom   12     Math     C
로그인 후 복사

해결책:

DataFrame을 녹이려면 df.melt()를 사용하세요. 새 열 이름에 대해 id_vars(원래 형식으로 유지되는 열)와 var_name 및 value_name을 지정합니다.

pd.melt(df, id_vars=['Name', 'Age'], var_name='Subject', value_name='Grade')
로그인 후 복사

문제 2: 용해 중 열 필터링

질문: 문제 1의 DataFrame을 어떻게 녹여 'English'를 필터링합니까? 열?

해결책:

df.melt()에서 value_vars를 사용하여 녹일 열을 지정하세요. 이 경우에는 ['Math']만 선택되었습니다:

pd.melt(df, id_vars=['Name', 'Age'], value_vars='Math', var_name='Subject', value_name='Grade')
로그인 후 복사

문제 3: 녹은 데이터 정렬 및 그룹화

질문: 녹은 데이터를 어떻게 정렬합니까? 문제 1의 데이터를 점수별로 분류하고 학생들을 그룹화합니다. 이름?

해결책:

녹은 DataFrame에서 .groupby() 및 .agg()를 사용하여 'Grade'별로 그룹화하고 이름과 제목을 쉼표로 연결합니다. -구분된 문자열:

melted_df.groupby('Grade', as_index=False).agg(", ".join)
로그인 후 복사

문제 4: 녹은 것을 녹이지 않게 하기 DataFrame

질문: 녹은 DataFrame을 어떻게 녹이지 않습니까?

해결책:

DataFrame.pivot_table을 사용하세요. ()를 사용하여 DataFrame을 녹입니다. 값, 인덱스 및 열을 지정합니다.

melted_df.pivot_table('Grades', ['Name', 'Age'], 'Subject', aggfunc='first').reset_index().droplevel(level=0, axis=1)
로그인 후 복사

문제 5: 이름으로 그룹화하고 열을 구분

질문: DataFrame을 이름과 열로 그룹화하려면 어떻게 해야 합니까? 과목과 성적을 구분하여 쉼표?

해결책:

DataFrame을 녹이고 .groupby() 및 .agg()를 사용하여 과목과 성적을 연결합니다.

pd.melt(df, id_vars=['Name'], var_name='Subject', value_name='Grade').groupby('Name', as_index=False).agg(", ".join)
로그인 후 복사

문제 6: 모든 열을 다음과 같이 녹입니다. 값

질문: DataFrame의 모든 열을 어떻게 녹이나요?

해결책:

df.stack( ).reset_index()를 사용하여 전치 DataFrame:

pd.melt(df, id_vars=None, var_name='Column', value_name='Value')
로그인 후 복사

이러한 솔루션은 다양한 목적으로 데이터를 조작하기 위해 Pandas DataFrame을 녹이거나 녹이지 않는 융통성을 보여줍니다.

위 내용은 데이터 조작을 위해 Pandas DataFrame을 어떻게 녹이고 녹이지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿