import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
tips
- 컬럼의 이름을 변경 -> ["총 금액","팁","성별","흡연 여부","요일","시간","인원"]
- 총 금액, 팁 소수점 첫째 자리는 유지하고 나머지 값은 반올림하여 올려준다.
- 식사 인원, 성별 팁의 비율의 평균의 값을 구하고 시각화(bar)
tips.columns
#Index(['총 금액', '팁', '성별', '흡연 여부', '요일', '시간', '인원'], dtype='object')
tips["총 금액"] = round(tips["총 금액"],1)
tips["팁"] = round(tips["팁"],1)
# tips[["총 금액","팁"]] = tips[["총 금액","팁"]].round(1)
## 팁 비율 = 팁 / (총 금액-팁) *100
tips['팁 비율'] = tips['팁'] / (tips['총 금액'] - tips['팁'])*100
group_tip = tips.groupby(["인원","성별"]).mean()['팁 비율']
# group_tip.plot.barh()
x = list(range(0,len(group_tip.index),1))
y = group_tip
plt.barh(x,y)
plt.yticks(x, group_tip.index)
plt.show()
male_data = pd.DataFrame()
female_data = pd.DataFrame()
for i in group_tip.index:
if i[1] == "Male":
data = group_tip.loc[[i]]
male_data = pd.concat([male_data,data])
else :
data = group_tip.loc[[i]]
female_data = pd.concat([female_data,data])
x = list(range(len(male_data)))
y1 = male_data["팁 비율"]
y2 = female_data["팁 비율"]
plt.bar(x,y1,width=0.3)
plt.bar(x,y2,width=0.3)
plt.show()