파이썬의 Pandas

유성·2024년 11월 3일

데이터분석

목록 보기
4/5

표 설명

  • 첫 행의 열 마다 딕셔너리의 키라고 생각하고 열로 봤을때 첫번째는 키이고 밑에 값이라고 생각한다.

pd.melt() 사용법

  • pd.melt() 메서드는 열을 행으로 변환하여 데이터를 "길고 얇은" 형태로 만드는 데 사용됩니다
  • pd.melt() 기본 사용법

import pandas as pd
변수=pd.melt(data, id_vars=[고정할 열],
 value_vars=[변환할 열], 
 var_name='새 열 이름', 
 value_name='값 열 이름')

해당 열의 키를 새로운 열로 만들고 열의 키 밑에 값은 모아서 값 열 이름에 넣는다.
  • pd.melt() 매개변수 간단 설명
    1. data:
      • 변환할 원본 데이터프레임입니다. 예를 들어, 학생 점수나 판매 기록 등 분석할 데이터를 담고 있는 표입니다.
    2. id_vars (고정할 열들):
      • 그대로 두고 싶은 열을 지정합니다.
      • 이 열은 변하지 않고, 변환된 결과에서 기준 역할을 합니다.
      • 예시: 학생 ID나 이름처럼 각 행을 구분하는 고유한 정보.
    3. value_vars (변환할 열들):
      • 행으로 바꿀 컬럼을 지정합니다.
      • 이 열들은 하나의 열로 모아지며 각각 행으로 늘어납니다.
      • 예시: 과목 이름 (Math, English 등)을 하나로 모으고 싶다면 여기에 추가합니다.
    4. var_name (새 열 이름):
      • 새로 생성될 열의 이름입니다.
      • 예를 들어, 각 과목 이름을 담는 열이 필요하다면 여기에 "Subject" 같은 이름을 설정할 수 있습니다.
    5. value_name (값을 담을 열 이름):
      • 새로 만들어진 열에 값을 담을 열 이름입니다.
      • 예를 들어, 과목의 점수를 담기 위해 "Score"라는 이름을 지정할 수 있습니다.
  • 예시
IDNameMathEnglish
1Amy9080
2Bob8575
import pandas as pd

# 예제 데이터
df = pd.DataFrame({
    'ID': [1, 2],
    'Name': ['Amy', 'Bob'],
    'Math': [90, 85],
    'English': [80, 75]
   
})

# pd.melt() 사용
melted_df = pd.melt(df, id_vars=['ID', 'Name'], 
									value_vars=['Math', 'English'], 
                   var_name='Subject', value_name='Score')

print(melted_df)

result)
   ID Name  Subject  Score
0   1  Amy     Math     90
1   2  Bob     Math     85
2   1  Amy  English     80
3   2  Bob  English     75
IDNameSubjectScore
1AmyMath90
2BobMath85
1AmyEnglish80
2BobEnglish75

pd.pivot_table() 사용법

  • pd.pivot_table()Pandas에서 제공하는 도구로, 데이터를 요약하여 특정 기준으로 그룹화하고 합계를 계산하는 데 사용됩니다.
  • pd.pivot_table() 기본 사용법
pd.pivot_table(data, index='행으로 쓸 열',
 columns='열로 쓸 열', 
 values='값으로 사용할 열', aggfunc='함수')

행이나 열로 지정된 값은 중복 값을 제거한다.
  • 각 매개변수 설명
    1. data: 데이터프레임을 넣습니다. (예: df)
    2. values: 계산할 값이 있는 열을 지정합니다. (예: 'Population')
    3. index: 행으로 사용할 열을 지정합니다. (예: 'City')
    4. columns: 열로 사용할 열을 지정합니다. (예: 'Year')
    5. aggfunc: 계산할 방법을 지정합니다. 기본은 평균(mean)이며, 합계(sum), 최소(min), 최대(max) 등으로 변경할 수 있습니다.
  • 예시코드
import pandas as pd

# 샘플 데이터 생성
data = {
    '과목': ['수학', '수학', '영어', '영어', '과학', '과학'],
    '반': ['A', 'B', 'A', 'B', 'A', 'B'],
    '성적': [85, 90, 88, 92, 78, 83]
}
df = pd.DataFrame(data)

# 피벗 테이블 생성
pivot_table = pd.pivot_table(df, values='성적', index='과목', columns='반', aggfunc='mean')
print(pivot_table)
AB
과목
수학85.090.0
영어88.092.0
과학78.078.0
profile
컴공

0개의 댓글