728x90
반응형
SMALL
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
import matplotlib
rc('font', family='AppleGothic')
plt.rcParams['axes.unicode_minus'] = False
데이터 불러오기 (pd.read_csv)
python 파일 경로에 data폴더 만든 후 다음의 hotel.xlsx 파일 넣어놓기
df = pd.read_csv('data/grade.csv')
df
g = df.groupby('학년')
g.mean()
df.info()
# pivot_table에서는 수치형 데이터들의 mean 계산(기본)
[OUT] :
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 9 entries, 0 to 8
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 학년 9 non-null object
1 과목 9 non-null object
2 결과 9 non-null object
3 중간 9 non-null int64
4 기말 9 non-null int64
dtypes: int64(2), object(3)
memory usage: 488.0+ bytes
gradeDF = df.pivot_table(index='학년')
gradeDF
gradeDF = df.pivot_table(index='학년',aggfunc='sum')
gradeDF
gradeDF = df.pivot_table(index=['학년','과목'],aggfunc='sum')
gradeDF
# gradeDF[['중간','기말']] -> 중간과 기말의 칼럼을 바꾸고 싶다면
g = df.groupby(['학년','과목'])
g.mean()
gradeDF = df.pivot_table(index=['학년','과목'],values='중간',columns='결과')
gradeDF
gradeDF = df.pivot_table(index='학년',aggfunc=['sum','mean'])
gradeDF
def fn(v):
print('=='*12)
print(v)
print('=='*12)
if v.mean()>=70:
return '합격'
else:
return '불합격'
return v.mean()
gradeDF = df.pivot_table(index='학년',values=['중간'],aggfunc=fn)
gradeDF
gradeDF = df.pivot_table(index='학년',values=['중간'],aggfunc=lambda v:'합격' if v.mean()>=70 else '불합격')
gradeDF
review
- groupby()와 pivot_table() 언제 써야하는 지 구분
728x90
반응형
LIST