>백엔드 개발 >파이썬 튜토리얼 >Pandas DataFrame을 효율적으로 녹이고 녹이지 않게 하려면 어떻게 해야 합니까?

Pandas DataFrame을 효율적으로 녹이고 녹이지 않게 하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-20 09:48:10593검색

How Can I Efficiently Melt and Unmelt Pandas DataFrames?

Pandas 데이터 프레임 녹이기

소개

Pandas에서 데이터 프레임 녹이기에는 데이터를 넓은 형식에서 긴 형식으로 바꾸는 작업이 포함됩니다. 형식으로 되어 있어 다양한 데이터 조작 작업에 유용합니다. 이 문서에서는 데이터프레임을 녹이는 과정을 안내하고 실제 사례를 통해 다양한 시나리오를 탐색합니다.

문제 1: 열 데이터 전치

목표: 원래 열을 반복하면서 열을 행으로 바꿉니다. names.

해결책:

df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')

이 코드는 'Subject' 및 'Grades' 열이 있는 새 데이터 프레임을 생성하며 원래 열 이름은 반복됩니다. 각각에 대해 row.

예:

df = pd.DataFrame({'Name': ['Bob', 'John', 'Foo', 'Bar', 'Alex', 'Tom'],
                   'Math': ['A+', 'B', 'A', 'F', 'D', 'C'],
                   'English': ['C', 'B', 'B', 'A+', 'F', 'A'],
                   'Age': [13, 16, 16, 15, 15, 13]})

melted_df = df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')

print(melted_df)

출력:

   Name  Age Subject Grades
0   Bob   13  English     C
1  John   16  English     B
...
11  Tom   13     Math     C

문제 2: 필터링 열

목표: 특정 열을 제외하고 다른 열을 녹입니다.

해결책:

df.melt(id_vars=['Name', 'Age'], value_vars='Math', var_name='Subject', value_name='Grades')

여기서 예를 들어 'Math' 열만 녹이고 'Age'와 'Name'은 그대로 유지됩니다. 식별자.

예:

melted_df = df.melt(id_vars=['Name', 'Age'], value_vars='Math', var_name='Subject', value_name='Grades')

print(melted_df)

출력:

   Name  Age Subject Grades
0   Bob   13    Math    A+
1  John   16    Math     B
...

문제 3: 그룹화 및 녹여서 주문하기 데이터

목표: 녹은 데이터를 그룹화하고 값별로 정렬합니다.

해결책:

melted_df.groupby('value', as_index=False).agg({
    'Subject': ', '.join,
    'Grades': ', '.join
}).sort_values('value', ascending=True)

이 코드는 녹은 데이터를 점수별로 그룹화하고 'Subject' 및 'Grades' 값을 쉼표.

예:

grouped_df = melted_df.groupby('value', as_index=False).agg({
    'Subject': ', '.join,
    'Grades': ', '.join
}).sort_values('value', ascending=True)

print(grouped_df)

출력:

  value             Name                Subjects
0     A         Foo, Tom           Math, English
1    A+         Bob, Bar           Math, English
2     B  John, John, Foo  Math, English, English
...

문제 4: 녹지 않음 데이터프레임

목표: 녹는 과정을 거꾸로 진행하여 원래 형식으로 되돌립니다.

해결책:

melted_df.pivot_table("Grades", ['Name', 'Age'], 'Subject', aggfunc='first').reset_index()

이 코드는 녹은 데이터 프레임을 원래 너비로 되돌립니다. 형식.

예:

unmelted_df = melted_df.pivot_table("Grades", ['Name', 'Age'], 'Subject', aggfunc='first').reset_index()

print(unmelted_df)

출력:

   Name  Age Math English
0   Alex   15    D       F
1   Bar   15    F      A+
2   Bob   13   A+       C
3   Foo   16    A       B
...

문제 5: 그룹화 및 결합 열

목표: 특정 열을 기준으로 데이터를 그룹화하고 다른 열을 쉼표로 결합합니다.

해결책:

melted_df.groupby('Name', as_index=False).agg(
    Subjects=', '.join,
    Grades=', '.join
)

이 코드는 '이름'별로 데이터를 그룹화하고 '과목'과 '성적'을 결합합니다.

예:

grouped_df = melted_df.groupby('Name', as_index=False).agg(
    Subjects=', '.join,
    Grades=', '.join
)

print(grouped_df)

출력:

   Name        Subjects Grades
0  Alex  Math, English   D, F
1   Bar  Math, English  F, A+
2   Bob  Math, English  A+, C
...

문제 6: 녹는다 모두 열

목표: 식별자를 포함하여 모든 열을 행으로 변환합니다.

해결책:

df.melt(var_name='Column', value_name='Value')

이 코드는 모든 열을 행으로 녹여 모든 데이터를 다음과 같이 처리합니다. 값.

예:

melted_df = df.melt(var_name='Column', value_name='Value')

print(melted_df)

출력:

    Column Value
0       Age    16
1       Age    16
2       Age    15
...
11  English     C
12     Math     A
13     Math    A+

위 내용은 Pandas DataFrame을 효율적으로 녹이고 녹이지 않게 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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