目录
第四次课作业
(1)读取上次作业保存的数据,酒店数据1.xlsx
(2)查看“评分”的格式,并分别进行升序和降序排序
(3)对酒店按照价格进行排名,计算“油尖旺”地区的均价。
(4)对酒店数据进行描述性统计,并求所有价格的均值方差,最大最小值,中值。
(5)计算评分和价格之间的的相关系数,协方差
(6)按照评分降序排序,评分相同时按价格升序排序。
(7)计算一下,评分小于3分的酒店数量和占比。
(8)计算一下,酒店评分大于等于4分的酒店的价格均值。
(9)计算出每个地区的酒店占总酒店数量的比例。
(10)找出酒店评分人数排名前20的酒店,并计算他们的价格均值。
(11)查看酒店分布的类型数量和地区数量,并统计各个类型和地区包含的酒店数量。
(12)用数据透视表,计算每个类型的酒店的评分人数总数量。
(13)用数据透视表,计算每个类型的酒店价格的均值和标准差
(14)用数据透视表,计算每个地区酒店价格和评分的最大值和最小值
(15)用数据透视表,计算每个地区和类型的酒店的评分的均值和标准差
#导入pandas和numpy库
import pandas as pd
import numpy as np
#导入表格
df = pd.read_excel('酒店数据1.xlsx')
#显示评分这一列的数据类型
df['评分'].dtype
>>>
dtype('float64')
#按照降序排序
df.sort_values(by=['评分'],ascending=False)
>>>
名字 类型 城市 地区 地点 评分 评分人数 价格
211 香港李女士宾馆(家庭旅馆)(MS LI GUEST HOUSE) 地铁周边 香港 油尖旺 弥敦道58号美丽都大厦E座5字楼E1室 4.9 7 351
333 香港新金冠宾馆(New Golden Crown Guest House) 客栈 香港 油尖旺 尖沙咀弥敦道68号金冠大厦13楼C室 4.9 10 395
19 香港文华东方酒店(Mandarin Oriental Hong Kong) 海滨风光 香港 中西区 中环干诺道中5号 4.8 2452 3609
85 香港丽思卡尔顿酒店(The Ritz-Carlton Hong Kong) 海滨风光 香港 油尖旺 九龙 柯士甸道西1号环球贸易广场 4.8 3553 3450
202 香港风格时尚家庭旅馆(Feng Ge Shi Shang Hotel) 地铁周边 香港 油尖旺 九龙尖沙咀弥敦道99-101号海防大厦10楼1005室 4.8 1375 307
... ... ... ... ... ... ... ... ...
353 香港京华宾馆(佐敦) 地铁周边 香港 其他 九龙佐敦南京街19-21号3楼2/F 2.3 40 328
360 香港港龙酒店(Comfort Lodge Hong Kong) 地铁周边 香港 油尖旺 香港九龙佐敦德兴街7-8号(礼苑,接待处位于A座2楼) 2.2 18 492
280 香港经济型酒店 (家庭旅馆)(Hong Kong Budget Hostel) 地铁周边 香港 油尖旺 弥敦道36-44号重庆大厦10字楼D,E座D8& E2室 2.0 29 67
282 巴黎旅馆(Paris Guest House (D2, 10/F)) 其他 香港 其他 Flat D2, 10/F, Block D, Chungking Mansion, 40 ... 2.0 5 67
385 香港中 港酒店(家庭旅馆)(HK-China Hotel) 地铁周边 香港 油尖旺 碧街33-39号永华大厦1楼(油麻地地铁站A1出口直走50米) 1.5 7 429
397 rows × 8 columns
#按照升序排序
df.sort_values(by=['评分'])
>>>
名字 类型 城市 地区 地点 评分 评分人数 价格
385 香港中 港酒店(家庭旅馆)(HK-China Hotel) 地铁周边 香港 油尖旺 碧街33-39号永华大厦1楼(油麻地地铁站A1出口直走50米) 1.5 7 429
280 香港经济型酒店 (家庭旅馆)(Hong Kong Budget Hostel) 地铁周边 香港 油尖旺 弥敦道36-44号重庆大厦10字楼D,E座D8& E2室 2.0 29 67
282 巴黎旅馆(Paris Guest House (D2, 10/F)) 其他 香港 其他 Flat D2, 10/F, Block D, Chungking Mansion, 40 ... 2.0 5 67
360 香港港龙酒店(Comfort Lodge Hong Kong) 地铁周边 香港 油尖旺 香港九龙佐敦德兴街7-8号(礼苑,接待处位于A座2楼) 2.2 18 492
332 香港欣欣宾馆(家庭旅馆)(YAN YAN GUEST HOUSE) 地铁周边 香港 油尖旺 弥敦道40号重庆大厦E座8字楼E1室 2.3 6 977
... ... ... ... ... ... ... ... ...
317 香港尊贵旅馆(Hong Kong Premium Guest House) 其他 香港 油尖旺 尖沙咀弥敦道56-58号美丽都大厦16字楼B2,A5室(前台入住办理设在16字楼A2室) 4.8 19 166
75 香港和平客栈(HK Peaceful Guesthouse) 民宿 香港 其他 尖沙咀弥敦道58号美丽都大厦13楼B1室于13楼C2室登记入住 4.8 511 264
199 香港鸣人宾馆(Naruto Inn) 地铁周边 香港 油尖旺 尖沙咀弥敦道83-97号华源大厦10F B4室 4.8 921 190
333 香港新金冠宾馆(New Golden Crown Guest House) 客栈 香港 油尖旺 尖沙咀弥敦道68号金冠大厦13楼C室 4.9 10 395
211 香港李女士宾馆(家庭旅馆)(MS LI GUEST HOUSE) 地铁周边 香港 油尖旺 弥敦道58号美丽都大厦E座5字楼E1室 4.9 7 351
397 rows × 8 columns
#按照价格进行排序
df.sort_values('价格')
>>>
名字 类型 城市 地区 地点 评分 评分人数 价格
385 香港中 港酒店(家庭旅馆)(HK-China Hotel) 地铁周边 香港 油尖旺 碧街33-39号永华大厦1楼(油麻地地铁站A1出口直走50米) 1.5 7 429
280 香港经济型酒店 (家庭旅馆)(Hong Kong Budget Hostel) 地铁周边 香港 油尖旺 弥敦道36-44号重庆大厦10字楼D,E座D8& E2室 2.0 29 67
282 巴黎旅馆(Paris Guest House (D2, 10/F)) 其他 香港 其他 Flat D2, 10/F, Block D, Chungking Mansion, 40 ... 2.0 5 67
360 香港港龙酒店(Comfort Lodge Hong Kong) 地铁周边 香港 油尖旺 香港九龙佐敦德兴街7-8号(礼苑,接待处位于A座2楼) 2.2 18 492
332 香港欣欣宾馆(家庭旅馆)(YAN YAN GUEST HOUSE) 地铁周边 香港 油尖旺 弥敦道40号重庆大厦E座8字楼E1室 2.3 6 977
... ... ... ... ... ... ... ... ...
317 香港尊贵旅馆(Hong Kong Premium Guest House) 其他 香港 油尖旺 尖沙咀弥敦道56-58号美丽都大厦16字楼B2,A5室(前台入住办理设在16字楼A2室) 4.8 19 166
75 香港和平客栈(HK Peaceful Guesthouse) 民宿 香港 其他 尖沙咀弥敦道58号美丽都大厦13楼B1室于13楼C2室登记入住 4.8 511 264
199 香港鸣人宾馆(Naruto Inn) 地铁周边 香港 油尖旺 尖沙咀弥敦道83-97号华源大厦10F B4室 4.8 921 190
333 香港新金冠宾馆(New Golden Crown Guest House) 客栈 香港 油尖旺 尖沙咀弥敦道68号金冠大厦13楼C室 4.9 10 395
211 香港李女士宾馆(家庭旅馆)(MS LI GUEST HOUSE) 地铁周边 香港 油尖旺 弥敦道58号美丽都大厦E座5字楼E1室 4.9 7 351
397 rows × 8 columns
#计算“油尖旺”地区的均价
df[df['地区']=='油尖旺'].价格.mean()
>>>
544.3621621621621
df.describe()
>>>
#对酒店数据进行描述
评分 评分人数 价格
count 397.000000 397.000000 397.000000
mean 4.286395 2511.929471 681.659950
std 0.483998 4566.627028 906.282671
min 1.500000 1.000000 67.000000
25% 4.200000 96.000000 247.000000
50% 4.400000 869.000000 418.000000
75% 4.600000 3283.000000 766.000000
max 4.900000 45463.000000 12926.000000
#求价格的均值
df['价格'].mean()
>>>
681.6599496221662
#求价格的方差
df['价格'].var()
>>>
821348.2805383828
#求价格的最大值
df['价格'].max()
>>>
12926
#求价格的最小值
df['价格'].min()
>>>
67
#求价格的中值
df['价格'].median()
>>>
418.0
#计算评分和价格之间的的相关系数
df[['评分','价格']].corr()
>>>
评分 价格
评分 1.000000 0.288189
价格 0.288189 1.000000
#计算评分和价格之间的的协方差
df[['评分','价格']].cov()
>>>
评分 价格
评分 0.234254 126.410832
价格 126.410832 821348.280538
df.sort_values(['评分','价格'],ascending=[False,True])
>>>
名字 类型 城市 地区 地点 评分 评分人数 价格
211 香港李女士宾馆(家庭旅馆)(MS LI GUEST HOUSE) 地铁周边 香港 油尖旺 弥敦道58号美丽都大厦E座5字楼E1室 4.9 7 351
333 香港新金冠宾馆(New Golden Crown Guest House) 客栈 香港 油尖旺 尖沙咀弥敦道68号金冠大厦13楼C室 4.9 10 395
317 香港尊贵旅馆(Hong Kong Premium Guest House) 其他 香港 油尖旺 尖沙咀弥敦道56-58号美丽都大厦16字楼B2,A5室(前台入住办理设在16字楼A2室) 4.8 19 166
199 香港鸣人宾馆(Naruto Inn) 地铁周边 香港 油尖旺 尖沙咀弥敦道83-97号华源大厦10F B4室 4.8 921 190
75 香港和平客栈(HK Peaceful Guesthouse) 民宿 香港 其他 尖沙咀弥敦道58号美丽都大厦13楼B1室于13楼C2室登记入住 4.8 511 264
... ... ... ... ... ... ... ... ...
332 香港欣欣宾馆(家庭旅馆)(YAN YAN GUEST HOUSE) 地铁周边 香港 油尖旺 弥敦道40号重庆大厦E座8字楼E1室 2.3 6 977
360 香港港龙酒店(Comfort Lodge Hong Kong) 地铁周边 香港 油尖旺 香港九龙佐敦德兴街7-8号(礼苑,接待处位于A座2楼) 2.2 18 492
280 香港经济型酒店 (家庭旅馆)(Hong Kong Budget Hostel) 地铁周边 香港 油尖旺 弥敦道36-44号重庆大厦10字楼D,E座D8& E2室 2.0 29 67
282 巴黎旅馆(Paris Guest House (D2, 10/F)) 其他 香港 其他 Flat D2, 10/F, Block D, Chungking Mansion, 40 ... 2.0 5 67
385 香港中 港酒店(家庭旅馆)(HK-China Hotel) 地铁周边 香港 油尖旺 碧街33-39号永华大厦1楼(油麻地地铁站A1出口直走50米) 1.5 7 429
#查看评分小于3分的酒店数量
len(df[df['评分'] < 3])
>>>
12
#查看评分小于3分的酒店占比。
len(df[df['评分'] < 3])/len(df)
>>>
0.030226700251889168
#查看酒店评分大于等于4分的酒店
df[df['评分'] >= 4]
>>>
名字 类型 城市 地区 地点 评分 评分人数 价格
0 香港嘉湖海逸酒店(Harbour Plaza Resort City) 休闲度假 香港 元朗 天水围 天恩路18号 4.600000 17604 422
1 香港铜锣湾皇悦酒店(Empire Hotel Hong Kong-Causeway Bay) 浪漫情侣 香港 东区 铜锣湾永兴街8号 4.500000 12708 693
2 香港碧荟酒店(The BEACON) 商务出行 香港 油尖旺 九龙旺角洗衣街88号 4.700000 328 747
3 香港湾仔帝盛酒店(Dorsett Wanchai) 浪漫情侣 香港 湾仔 皇后大道东387-397号 4.400000 5014 693
4 如心艾朗酒店(L‘hotel elan) 浪漫情侣 香港 观塘 观塘创业街38号 4.600000 3427 581
... ... ... ... ... ... ... ... ...
391 香港HotelVenus(Hotel Venus) 地铁周边 香港 油尖旺 尖沙咀弥敦道36-40号重庆大厦C座12楼C6室 4.283827 2 172
392 香港金泉酒店 地铁周边 香港 其他 香港旺角弥敦道607号新兴大厦1407室 4.283827 16 245
394 香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre) 海滨风光 香港 荃湾 荃湾 杨屋道8号 4.500000 45462 709
395 香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre) 海滨风光 香港 荃湾 荃湾 杨屋道8号 4.500000 45463 709
396 香港花盈酒店(家庭旅馆)(Bloomy Hotel) 地铁周边 香港 油尖旺 尖沙咀弥敦道87号华源大厦9字楼C2室 4.000000 273 256
340 rows × 8 columns
#查看酒店评分大于等于4分的酒店的价格
df[df['评分'] >= 4]['价格']
>>>
0 422
1 693
2 747
3 693
4 581
...
391 172
392 245
394 709
395 709
396 256
Name: 价格, Length: 340, dtype: int64
#查看酒店评分大于等于4分的酒店的价格均值
df[df['评分'] >= 4]['价格'].mean()
>>>
742.2205882352941
#计算出每个地区的酒店占总酒店数量
df['地区'].value_counts()
>>>
油尖旺 185
其他 56
湾仔 41
中西区 33
九龙城 21
东区 16
离岛 11
荃湾 7
观塘 7
葵青 5
南区 5
沙田 4
元朗 2
屯门 2
深水埗区 1
罗湖区 1
Name: 地区, dtype: int64
#计算出每个地区的酒店占总酒店数量的比例
df['地区'].value_counts()/len(df)
>>>
油尖旺 0.465995
其他 0.141058
湾仔 0.103275
中西区 0.083123
九龙城 0.052897
东区 0.040302
离岛 0.027708
荃湾 0.017632
观塘 0.017632
葵青 0.012594
南区 0.012594
沙田 0.010076
元朗 0.005038
屯门 0.005038
深水埗区 0.002519
罗湖区 0.002519
Name: 地区, dtype: float64
df.sort_values('评分人数',
ascending=False)[:20]['价格'].mean
>>>
.mean of 395 709
394 709
82 1115
91 569
0 422
108 1265
105 1667
86 759
12 562
81 1760
18 358
1 693
138 1278
127 1052
8 692
14 1899
95 1988
92 968
111 3068
120 678
Name: 价格, dtype: int64>
#查看酒店分布的类型
df['类型'].unique()
>>>
array(['休闲度假', '浪漫情侣', '商务出行', '海滨风光', '地铁周边', '交通方便', '亲子酒店', '其他', '民宿',
'印象好', '酒店公寓', '青年旅舍', '客栈', '火车站周边', '老板热情', '环境不错', '干净卫生',
'大学周边'], dtype=object)
#查看酒店分布的类型数量
len(df['类型'].unique())
>>>
18
#查看酒店分布的地区
df['地区'].unique()
>>>
array(['元朗', '东区', '油尖旺', '湾仔', '观塘', '中西区', '南区', '离岛', '九龙城', '荃湾',
'屯门', '葵青', '其他', '沙田', '深水埗区', '罗湖区'], dtype=object)
#查看酒店分布的地区数量
len(df['地区'].unique())
>>>
16
#统计各个类型包含的酒店数量
df['类型'].value_counts()
>>>
地铁周边 172
浪漫情侣 68
海滨风光 61
休闲度假 31
其他 20
商务出行 13
民宿 6
酒店公寓 5
亲子酒店 5
青年旅舍 4
客栈 3
环境不错 3
老板热情 1
火车站周边 1
印象好 1
交通方便 1
大学周边 1
干净卫生 1
Name: 类型, dtype: int64
#统计各个地区包含的酒店数量
df['地区'].value_counts()
>>>
油尖旺 185
其他 56
湾仔 41
中西区 33
九龙城 21
东区 16
离岛 11
荃湾 7
观塘 7
葵青 5
南区 5
沙田 4
元朗 2
屯门 2
深水埗区 1
罗湖区 1
Name: 地区, dtype: int64
pd.pivot_table(
df,index=['类型'],
values=['评分人数']
)
>>>
评分人数
类型
交通方便 152.000000
亲子酒店 2298.400000
休闲度假 7653.580645
其他 242.900000
印象好 68.000000
商务出行 740.769231
地铁周边 530.947674
大学周边 23.000000
客栈 76.333333
干净卫生 146.000000
民宿 415.500000
浪漫情侣 3506.411765
海滨风光 6468.852459
火车站周边 578.000000
环境不错 442.333333
老板热情 48.000000
酒店公寓 393.400000
青年旅舍 651.250000
pd.pivot_table(
df,index=['类型'],
aggfunc={np.std,np.mean}
)
>>>
价格 评分 评分人数
mean std mean std mean std
类型
交通方便 421.000000 NaN 4.600000 NaN 152.000000 NaN
亲子酒店 745.400000 546.616227 4.460000 0.219089 2298.400000 1644.163708
休闲度假 1127.774194 827.492707 4.558065 0.123218 7653.580645 4617.273804
其他 269.300000 199.264727 4.008531 0.694831 242.900000 713.793269
印象好 297.000000 NaN 4.700000 NaN 68.000000 NaN
商务出行 1045.153846 870.595663 4.500000 0.158114 740.769231 695.513138
地铁周边 374.139535 377.604830 4.063723 0.576201 530.947674 970.901434
大学周边 325.000000 NaN 4.500000 NaN 23.000000 NaN
客栈 397.666667 154.017315 4.627942 0.314343 76.333333 122.769432
干净卫生 185.000000 NaN 4.300000 NaN 146.000000 NaN
民宿 258.500000 127.000394 4.363971 0.378340 415.500000 352.232168
浪漫情侣 608.573529 303.356119 4.405882 0.170059 3506.411765 2538.455902
海滨风光 1543.573770 1746.828349 4.613115 0.132257 6468.852459 8375.441978
火车站周边 968.000000 NaN 4.600000 NaN 578.000000 NaN
环境不错 357.666667 161.283394 4.366667 0.152753 442.333333 561.250687
老板热情 385.000000 NaN 4.400000 NaN 48.000000 NaN
酒店公寓 1182.000000 697.624899 4.340000 0.181659 393.400000 451.107858
青年旅舍 189.250000 116.851401 4.375000 0.330404 651.250000 620.684233
pd.pivot_table(
df,index=['地区'],
values=['价格','评分'],
aggfunc={np.max,np.min}
)
>>>
价格 评分
amax amin amax amin
地区
东区 1908 331 4.700000 4.200000
中西区 12926 254 4.800000 3.800000
九龙城 1742 137 4.800000 3.700000
元朗 425 422 4.600000 4.500000
其他 1450 67 4.800000 2.000000
南区 553 185 4.400000 3.800000
屯门 696 582 4.700000 4.500000
沙田 1052 569 4.700000 4.400000
油尖旺 3862 67 4.900000 1.500000
深水埗区 648 648 4.300000 4.300000
湾仔 2856 131 4.700000 3.400000
离岛 1667 352 4.800000 2.900000
罗湖区 506 506 4.283827 4.283827
荃湾 709 225 4.500000 4.300000
葵青 423 196 4.400000 3.400000
观塘 1132 448 4.600000 4.200000
pd.pivot_table(
df,index=['地区','类型'],
values=['评分'],
aggfunc={np.mean,np.std}
)
>>>
评分
mean std
地区 类型
东区 其他 4.600000 NaN
商务出行 4.500000 0.000000
客栈 4.283827 NaN
浪漫情侣 4.425000 0.150000
海滨风光 4.512500 0.155265
... ... ... ...
葵青 浪漫情侣 4.200000 0.230940
观塘 休闲度假 4.600000 0.000000
其他 4.200000 NaN
浪漫情侣 4.550000 0.070711
海滨风光 4.500000 0.141421
73 rows × 2 columns