파이썬의 pandas 라이브러리는 데이터프레임을 다루는데 매우 강력하고 유용한 기능을 많이 제공합니다. 다음은 pandas 데이터프레임에서 사람들이 모르거나 덜 주목하는 유용한 기능 몇 가지를 예제와 함께 상세하게 설명하겠습니다.
pivot_table
피벗 테이블과 유사한 기능을 제공합니다. 데이터프레임에서 특정 열을 행 인덱스로, 다른 열을 열 인덱스로, 그리고 값으로 사용하여 데이터를 요약할 수 있습니다.
import pandas as pd
data = {
'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
'Value': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)
pivot_df = df.pivot_table(index='Category', values='Value', aggfunc='mean')
print(pivot_df)
실행 결과
Value
Category
A 30
B 40
melt
데이터프레임을 ‘녹여서'(melt) 새로운 형태로 변환합니다. 여러 열에 산재된 데이터를 정리하여 하나의 열로 만들 수 있습니다.
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Math': [80, 70, 90],
'Science': [85, 65, 78]
}
df = pd.DataFrame(data)
melted_df = df.melt(id_vars='Name', var_name='Subject', value_name='Score')
print(melted_df)
실행 결과
Name Subject Score
0 Alice Math 80
1 Bob Math 70
2 Charlie Math 90
3 Alice Science 85
4 Bob Science 65
5 Charlie Science 78
crosstab
교차표(cross-tabulation)를 생성하여 두 열 간의 빈도수를 계산합니다.
import pandas as pd
data = {
'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
'Value': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)
cross_tab = pd.crosstab(df['Category'], df['Value'])
print(cross_tab)
실행 결과
Value 10 20 30 40 50 60
Category
A 1 0 1 0 1 0
B 0 1 0 1 0 1
apply
데이터프레임의 각 요소에 함수를 적용할 수 있습니다. 특히, 람다 함수와 함께 사용하면 유용합니다.
import pandas as pd
data = {
'Value': [10, 20, 30, 40, 50]
}
df = pd.DataFrame(data)
# 각 값에 10을 더하는 함수를 적용
df['New_Value'] = df['Value'].apply(lambda x: x + 10)
print(df)
실행 결과
Value New_Value
0 10 20
1 20 30
2 30 40
3 40 50
4 50 60
cut
연속형 데이터를 구간으로 나누는데 사용됩니다. 연속형 데이터를 범주형 데이터로 변환할 수 있습니다.
import pandas as pd
data = {
'Score': [90, 80, 70, 60, 50, 40]
}
df = pd.DataFrame(data)
# 점수를 성적 구간으로 나누기
bins = [0, 59, 69, 79, 89, 100]
labels = ['F', 'D', 'C', 'B', 'A']
df['Grade'] = pd.cut(df['Score'], bins=bins, labels=labels)
print(df)
실행 결과
Score Grade
0 90 A
1 80 B
2 70 C
3 60 D
4 50 F
5 40 F
이외에도 pandas에는 데이터프레임을 다루는데 유용한 다양한 함수와 기능이 있으며, 유연성과 높은 성능으로 데이터 분석과 조작을 편리하게 수행할 수 있습니다. 엑셀과 비슷한 데이터프레임 기능을 파이썬에서 사용할 수 있다는 점을 알고 있으면 데이터 처리 및 분석에 큰 도움이 될 것입니다.
[Python] 22. seaborn 산점도에 다각형 spec line 추가하기
Seaborn을 사용하여 산점도에 다각형(spec) line을 추가하려면 sns.regplot() 함수를 사용하면 됩니다. 이 함수는 산점도를 그리는 동시에 선형 회귀 선을 추가하는데 사용되며, 다각형(spec) line을 그리기에도 적용됩니다.…