Day14

Ju-Young Han·2024년 1월 28일

python

목록 보기
21/22

판다스 그룹바이(groupby) 함수

데이터를 쉽게 이해하기 위해 비슷한 트것ㅇ을 가진 것들을 모으는 것.

#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)
##################

value.count()

이것은 우리 인간이 볼 수 있는 수치로 나타나게 하는 코드

#########################################

#스낵별로 묶고 무비를 보여줘.

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'] == '이벤트 대상'])

pandas에서 apply 함수

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()

30대가 시민덕희를 보는 사람 중에 음료 비율을 뽑아라.

30대가 시민덕희를 보는 사람 중에 음료 비율을 뽑아라.

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()

이변량 그래프는 x와 y가 있다.

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()

0개의 댓글