> 백엔드 개발 > 파이썬 튜토리얼 > `melt()` 함수를 사용하여 Pandas DataFrame을 어떻게 녹이고 조작합니까?

`melt()` 함수를 사용하여 Pandas DataFrame을 어떻게 녹이고 조작합니까?

Susan Sarandon
풀어 주다: 2024-12-17 07:14:24
원래의
603명이 탐색했습니다.

How Do I Melt and Manipulate Pandas DataFrames Using the `melt()` Function?

Pandas 데이터 프레임을 녹이려면 어떻게 해야 하나요?

Pandas 데이터 프레임을 녹이려면 여러 열이 있는 넓은 형식에서 긴 형식으로 변환해야 합니다. '변수'와 '값'이라는 두 개의 기본 열이 있습니다. 이는 Melt() 함수를 사용하여 달성할 수 있습니다.

문제 1: 데이터프레임을 녹여 열을 행으로 바꾸기

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

이렇게 하면 원본 데이터프레임이 '이름', '나이', '주제' 및 '성적' 열이 있는 원하는 형식입니다. '제목' 열에는 원래 열 헤더가 포함되고 '성적'에는 해당 값이 포함됩니다.

문제 2: 특정 열을 포함하도록 녹은 데이터 필터링

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

녹은 데이터프레임을 필터링하면 원하지 않는 열을 제거할 수 있습니다. 이 경우에는 'Subject'가 'Math'로 설정된 행만 유지됩니다.

문제 3: 녹은 데이터를 그룹화하고 점수별로 정렬

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
sorted_df = df.groupby('value').agg({'Name': ', '.join, 'Subject': ', '.join})
sorted_df = sorted_df.sort_values('value')
로그인 후 복사

이렇게 하면 '값' 열에 중복된 값이 있는 행이 병합되어 '이름' 및 '제목' 열이 쉼표로 구분된 값으로 집계됩니다. 그런 다음 결과를 정렬하여 등급을 오름차순으로 정렬합니다.

문제 4: 녹은 데이터 프레임 풀기

unmelted_df = df.pivot(index=['Name', 'Age'], columns='Subject', values='Grades')
로그인 후 복사

녹은 데이터 프레임을 원래 형식으로 다시 변환하려면, 피벗() 함수를 사용할 수 있습니다. 이렇게 하면 데이터를 '이름' 및 '나이' 열별로 그룹화하고 '제목' 열을 피벗하여 원래 데이터프레임 모양을 만듭니다.

문제 5: 녹은 데이터를 그룹화하고 과목과 성적을 연결합니다

df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')
grouped_df = df.groupby('Name').agg({'Subject': ', '.join, 'Grades': ', '.join})
로그인 후 복사

문제 3과 유사하게 녹은 데이터프레임을 '이름'으로 그룹화하고 쉼표를 사용하여 'Subject' 및 'Grades' 열을 연결합니다. 결과는 과목과 성적을 나열하는 한 사람당 하나의 행이 있는 데이터 프레임입니다.

문제 6: 모든 열을 값으로 포함하는 데이터 프레임 녹이기

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

To 모든 열을 값으로 사용하여 데이터프레임을 녹이려면 Melt() 함수에서 id_vars 인수를 생략하세요. 이렇게 하면 '열' 열에 원래 열 헤더가 나열되고 '값' 열에 해당 값이 포함되는 데이터프레임이 생성됩니다.

위 내용은 `melt()` 함수를 사용하여 Pandas DataFrame을 어떻게 녹이고 조작합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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