데이터를 쉽게 이해하기 위해 비슷한 트것ㅇ을 가진 것들을 모으는 것.
#gruopby
#대학교에서 1학년 기준으로
#의과대생 기준으로
#유학생기준으로 라는 느낌으로 하는게 그룹바이임.
########### 어제 만든 cgv데이터에서 무비 섹션만 가져와라. 하는 것을 만들어라.
#import pandas
#df = pandas.read_csv('cgv.csv')
#groupby_movie = df.groupby('movie').value_counts()
#print(groupby_movie)
###############무비에서 윙카 본 사람만 가져와라.
import pandas
df = pandas.read_csv('cgv.csv')
groupby_movie = df.groupby('movie')
wongka = groupby_movie.get_group('윙카')
print(wongka)
##################
이것은 우리 인간이 볼 수 있는 수치로 나타나게 하는 코드
#########################################
#스낵별로 묶고 무비를 보여줘.
import pandas
df = pandas.read_csv('cgv.csv')
group_by_snack = df.groupby('snack')
payments_by_snack = group_by_snack['payments'].value_counts()
print(payments_by_snack)
##########################시간대별로 음료구매한 것을 보고싶다########
import pandas
df = pandas.read_csv('cgv.csv')
group_by_times = df.groupby('times')
payments_by_times = group_by_times['drink'].value_counts()
print(payments_by_times)
##########################열을 집어넣어서 나이 50살이고, 타임이 심야인 사람들을 이벤트 대상이라고 만들어라.
import pandas
df = pandas.read_csv('cgv.csv')
def isElderAndNight(row):
if row['age'] == 50 and row['times'] == "심야":
return '이벤트 대상'
else:
return'아님'
df['elder_event'] = df.apply(isElderAndNight, axis=1)
print(df)
###############열을 집어넣어서 영화 윙카를 보고 스낵이 카라멜을 먹는 사람이 이벤트 대상이다.
import pandas
df = pandas.read_csv('cgv.csv')
def isElderAndNight(row):
if row['movie'] == "윙카" and row['snack'] == "카라멜":
return '이벤트 대상'
else:
return'아님'
df['elder_event'] = df.apply(isElderAndNight, axis=1)
print(df)
######################여러개 병합해서 이벤트 대상 모으는 것############
import pandas
df = pandas.read_csv('cgv.csv')
def isElderAndNight(row):
if row['age'] == 50 and row['times'] == "심야":
return '이벤트 대상'
else:
return'아님'
def WongkaEvent(row):
if row['movie'] == "윙카" and row['snack'] == "카라멜":
return '이벤트 대상'
else:
return'아님'
df['elder_event'] = df.apply(isElderAndNight, axis=1)
df['wongka_Event'] = df.apply(WongkaEvent, axis=1)
print(df[df['elder_event']=='이벤트 대상'][df['wongka_Event'] == '이벤트 대상'])
apply함수를 사용하면 사용자가 정의한 함수를 각 행이나 열에 적요할 수 있다. 예를 들어 성적데이터가 있고 수학 영어 과학 열이 있다고하면, 학생의 평균 성적을 계산하기 위해 어플라이 함수를 사용할 수 있다.
matplotlib
seaborn
####그래프 만드는 것
import pandas
import matplotlib.pyplot as plt
x = [i for i in range(10)]
y = [i for i in range(10,20)]
plt.plot(x,y)
plt.show()
##시간ㄷ때에 보는 영화를 나오게 하고 그림으로 그리게 하라.
import pandas
df = pandas.read_csv('cgv.csv')
movie_groupby_time = df.groupby('times')['movie'].value_counts()
night_movie = movie_groupby_time["심야"]
plt.rcParams["font.family"] = 'Malgun Gothic' #한글 폰트로 나오게설정
night_movie.plot.pie(autopct = '%1.1f%%')#숫자 비율을 소수점 1까지 보여주기
plt.title("심양 영화 파이그래프")
plt.show()
import pandas
df = pandas.read_csv('cgv.csv')
movie_groupby_time = df.groupby('movie')['snack'].value_counts()
eating_snack = movie_groupby_time["너의 이름은"]
plt.rcParams["font.family"] = 'Malgun Gothic' #한글 폰트로 나오게설정
eating_snack.plot.pie(autopct = '%1.1f%%')#숫자 비율을 소수점 1까지 보여주기
plt.title("너의 이름은을 본 사람의 스낵비율")
plt.show()
import pandas
df = pandas.read_csv('cgv.csv')
age_30_civil_df = df[df['age']==30][df['movie']=='시민덕희']
drink = age_30_civil_df['drink'].value_counts()
plt.rcParams["font.family"] = 'Malgun Gothic' #한글 폰트로 나오게설정
drink.plot.pie(autopct = '%1.1f%%')#숫자 비율을 소수점 1까지 보여주기
plt.title("30대 시민덕희를 본 사람 음료 비울")
plt.show()
df = pandas.read_csv('cgv.csv')
age_30_civil_df = df[df['age']==30][df['movie']=='시민덕희']
drink = age_30_civil_df['drink'].value_counts()
plt.rcParams["font.family"] = 'Malgun Gothic' #한글 폰트로 나오게설정
#drink.plot.pie(autopct = '%1.1f%%')#숫자 비율을 소수점 1까지 보여주기
drink.plot(kind='bar') #바 그래프로 나타내기
plt.title("음료와 30대가 시민덕희 본 사람의 관계")
plt.show()
import pandas
import matplotlib.pyplot as plt
import seaborn as sns
df = pandas.read_csv('cgv.csv')
#시간때 별로 음료 고를게요
grouping = df.groupby(['times','drink'])
#크기계산
sizeGroup = grouping.size()
print(sizeGroup)
#테이블화
table = sizeGroup.unstack(fill_value=0)
plt.rcParams["font.family"] = 'Malgun Gothic'
sns.heatmap(table,cmap='coolwarm')
plt.xticks(rotation=45)
plt.yticks(rotation=45)
plt.show()