Pandas第三部分Day5练习题

目录

第五次课作业

(1)读取数据。读取之前作业保存的“酒店数据1.xlsx”

(2)将“类型”和“名字”设置为层次化索引,并交换索引的位置。然后将层次化索引取消。

(3)将数据集转置,获取转制后的index和columns。

(4)用Groupby方法来计算每个地区的评分人数的总和以及均值。

(5)用Grouby方法计算每个类型的平均价格,最高价和最低价。

(6)数据离散化,按照价格将酒店分为3个等级,0-500为C,500-1000为B,大于1000为A,列名设置为“价格等级”。

(7)获取评分均值最高和最低的地区的数据,分别使用append和concat方法将获取的两个数据集合并。

(8)数据离散化,按照评分人数将酒店平均分为3个等级,三个等级的酒店数量尽量保持一致。评分人数最多的为A,最少的为C。列名设置为“热门等级”。

(9)选出评分人数为A,价格也为A的酒店数据,计算其平均评分。

(10)取价格最高的5个酒店的数据,使用stack和unstack方法实现dataframe和Series之间的转换。

(11)纵向拆分数据集,分为df1和df2,df1包含名字,类型,城市,地区,df2包含名字,地点,评分,评分人数,价格,价格等级,热门等级。

(12)将df2按照价格进行排序,重新设置df2的索引。索引值等于价格排名。

(13)使用merge方法将df1和df2合并。

(14)将合并后的数据集保存数据到“酒店数据2.xlsx”。


第五次课作业

(1)读取数据。读取之前作业保存的“酒店数据1.xlsx”

import pandas as pd
import numpy as np
df = pd.read_excel('酒店数据1.xlsx')
df[:5]

>>>

名字	类型	城市	地区	地点	评分	评分人数	价格
0	香港嘉湖海逸酒店(Harbour Plaza Resort City)	休闲度假	香港	元朗	天水围 天恩路18号	4.6	17604	422
1	香港铜锣湾皇悦酒店(Empire Hotel Hong Kong-Causeway Bay)	浪漫情侣	香港	东区	铜锣湾永兴街8号	4.5	12708	693
2	香港碧荟酒店(The BEACON)	商务出行	香港	油尖旺	九龙旺角洗衣街88号	4.7	328	747
3	香港湾仔帝盛酒店(Dorsett Wanchai)	浪漫情侣	香港	湾仔	皇后大道东387-397号	4.4	5014	693
4	如心艾朗酒店(L‘hotel elan)	浪漫情侣	香港	观塘	观塘创业街38号	4.6	3427	581

(2)将“类型”和“名字”设置为层次化索引,并交换索引的位置。然后将层次化索引取消。

#将类型和名字设为索引
df = df.set_index(['类型','名字'])
df

>>>


城市	地区	地点	评分	评分人数	价格
类型	名字						
休闲度假	香港嘉湖海逸酒店(Harbour Plaza Resort City)	香港	元朗	天水围 天恩路18号	4.600000	17604	422
浪漫情侣	香港铜锣湾皇悦酒店(Empire Hotel Hong Kong-Causeway Bay)	香港	东区	铜锣湾永兴街8号	4.500000	12708	693
商务出行	香港碧荟酒店(The BEACON)	香港	油尖旺	九龙旺角洗衣街88号	4.700000	328	747
浪漫情侣	香港湾仔帝盛酒店(Dorsett Wanchai)	香港	湾仔	皇后大道东387-397号	4.400000	5014	693
如心艾朗酒店(L‘hotel elan)	香港	观塘	观塘创业街38号	4.600000	3427	581
...	...	...	...	...	...	...	...
地铁周边	香港金泉酒店	香港	其他	香港旺角弥敦道607号新兴大厦1407室	4.283827	16	245
香港天天宾馆(TIN TIN GUEST HOUSE)	香港	油尖旺	旺角弥敦道607号新兴大厦1517A	3.200000	16	227
海滨风光	香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	香港	荃湾	荃湾 杨屋道8号	4.500000	45462	709
香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	香港	荃湾	荃湾 杨屋道8号	4.500000	45463	709
地铁周边	香港花盈酒店(家庭旅馆)(Bloomy Hotel)	香港	油尖旺	尖沙咀弥敦道87号华源大厦9字楼C2室	4.000000	273	256
397 rows × 6 columns


#将类型和名字两个索引交换位置
df=df.swaplevel('类型','名字')
df

>>>

		城市	地区	地点	评分	评分人数	价格
名字	类型						
香港嘉湖海逸酒店(Harbour Plaza Resort City)	休闲度假	香港	元朗	天水围 天恩路18号	4.600000	17604	422
香港铜锣湾皇悦酒店(Empire Hotel Hong Kong-Causeway Bay)	浪漫情侣	香港	东区	铜锣湾永兴街8号	4.500000	12708	693
香港碧荟酒店(The BEACON)	商务出行	香港	油尖旺	九龙旺角洗衣街88号	4.700000	328	747
香港湾仔帝盛酒店(Dorsett Wanchai)	浪漫情侣	香港	湾仔	皇后大道东387-397号	4.400000	5014	693
如心艾朗酒店(L‘hotel elan)	浪漫情侣	香港	观塘	观塘创业街38号	4.600000	3427	581
...	...	...	...	...	...	...	...
香港金泉酒店	地铁周边	香港	其他	香港旺角弥敦道607号新兴大厦1407室	4.283827	16	245
香港天天宾馆(TIN TIN GUEST HOUSE)	地铁周边	香港	油尖旺	旺角弥敦道607号新兴大厦1517A	3.200000	16	227
香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	海滨风光	香港	荃湾	荃湾 杨屋道8号	4.500000	45462	709
海滨风光	香港	荃湾	荃湾 杨屋道8号	4.500000	45463	709
香港花盈酒店(家庭旅馆)(Bloomy Hotel)	地铁周边	香港	油尖旺	尖沙咀弥敦道87号华源大厦9字楼C2室	4.000000	273	256
397 rows × 6 columns


#将索引重新设置
df = df.reset_index()
df

>>>

名字	类型	城市	地区	地点	评分	评分人数	价格
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
...	...	...	...	...	...	...	...	...
392	香港金泉酒店	地铁周边	香港	其他	香港旺角弥敦道607号新兴大厦1407室	4.283827	16	245
393	香港天天宾馆(TIN TIN GUEST HOUSE)	地铁周边	香港	油尖旺	旺角弥敦道607号新兴大厦1517A	3.200000	16	227
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
397 rows × 8 columns

(3)将数据集转置,获取转制后的index和columns。

#将数据集转置
df.T

>>>

0	1	2	3	4	5	6	7	8	9	...	387	388	389	390	391	392	393	394	395	396
名字	香港嘉湖海逸酒店(Harbour Plaza Resort City)	香港铜锣湾皇悦酒店(Empire Hotel Hong Kong-Causeway Bay)	香港碧荟酒店(The BEACON)	香港湾仔帝盛酒店(Dorsett Wanchai)	如心艾朗酒店(L‘hotel elan)	香港隆堡柏宁顿酒店(Hotel Pennington by Rhombus)	海景嘉福洲际酒店(InterContinental Grand Stanford Hong ...	香港怡东酒店(Excelsior Hotel)	香港富豪九龙酒店(Regal Kowloon Hotel)	港岛香格里拉大酒店(Island Shangri-La)	...	香港圣地牙哥宾馆(家庭旅馆)(San Diego Guesthouse)	香港珠峰旅馆(Everest Inn Guest House)	深圳月亮月亮公寓	香港航天星际酒店(Hotel Skystar)	香港HotelVenus(Hotel Venus)	香港金泉酒店	香港天天宾馆(TIN TIN GUEST HOUSE)	香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	香港花盈酒店(家庭旅馆)(Bloomy Hotel)
类型	休闲度假	浪漫情侣	商务出行	浪漫情侣	浪漫情侣	浪漫情侣	海滨风光	海滨风光	休闲度假	海滨风光	...	地铁周边	地铁周边	民宿	地铁周边	地铁周边	地铁周边	地铁周边	海滨风光	海滨风光	地铁周边
城市	香港	香港	香港	香港	香港	香港	香港	香港	香港	香港	...	香港	香港	香港	香港	香港	香港	香港	香港	香港	香港
地区	元朗	东区	油尖旺	湾仔	观塘	湾仔	油尖旺	湾仔	油尖旺	中西区	...	油尖旺	其他	罗湖区	其他	油尖旺	其他	油尖旺	荃湾	荃湾	油尖旺
地点	天水围 天恩路18号	铜锣湾永兴街8号	九龙旺角洗衣街88号	皇后大道东387-397号	观塘创业街38号	铜锣湾边宁顿街13-15号	尖沙咀東部麽地道70号	铜锣湾告士打道281号	尖沙嘴麽地道71号	金钟中区法院道太古广场	...	亚皆老街83号先施大厦3字楼309室	香港弥敦道40号重庆大厦D座16字楼3室(尖沙咀地铁站旁)	深圳罗湖区渔民村	尖沙咀弥敦道36-40号重庆大厦E座14楼E3室	尖沙咀弥敦道36-40号重庆大厦C座12楼C6室	香港旺角弥敦道607号新兴大厦1407室	旺角弥敦道607号新兴大厦1517A	荃湾 杨屋道8号	荃湾 杨屋道8号	尖沙咀弥敦道87号华源大厦9字楼C2室
评分	4.6	4.5	4.7	4.4	4.6	4.5	4.7	4.6	4.5	4.8	...	4.283827	4.283827	4.283827	4.283827	4.283827	4.283827	3.2	4.5	4.5	4.0
评分人数	17604	12708	328	5014	3427	1938	4366	6961	11265	4182	...	84	7	24	3	2	16	16	45462	45463	273
价格	422	693	747	693	581	869	1296	1184	692	2836	...	348	175	506	172	172	245	227	709	709	256
8 rows × 397 columns


#获取索引
df.index

>>>

RangeIndex(start=0, stop=397, step=1)



#获取列
df.columns

>>>

Index(['名字', '类型', '城市', '地区', '地点', '评分', '评分人数', '价格'], dtype='object')

(4)用Groupby方法来计算每个地区的评分人数的总和以及均值。

#按照地区分组并求和
df['评分人数'].groupby(df['地区']).sum()

>>>

地区
东区       56643
中西区      59682
九龙城      49855
元朗       18804
其他       16831
南区       12867
屯门        7324
沙田       39622
油尖旺     422574
深水埗区        16
湾仔      107344
离岛       60359
罗湖区         24
荃湾      114610
葵青       11544
观塘       19137
Name: 评分人数, dtype: int64



#取每个地区的价格均值
df['评分人数'].groupby(df['地区']).mean()

>>>

地区
东区       3540.187500
中西区      1808.545455
九龙城      2374.047619
元朗       9402.000000
其他        300.553571
南区       2573.400000
屯门       3662.000000
沙田       9905.500000
油尖旺      2284.183784
深水埗区       16.000000
湾仔       2618.146341
离岛       5487.181818
罗湖区        24.000000
荃湾      16372.857143
葵青       2308.800000
观塘       2733.857143
Name: 评分人数, dtype: float64

(5)用Grouby方法计算每个类型的平均价格,最高价和最低价。

#按照类型求平均价格
df['价格'].groupby(df['类型']).mean()

>>>

类型
交通方便      421.000000
亲子酒店      745.400000
休闲度假     1127.774194
其他        269.300000
印象好       297.000000
商务出行     1045.153846
地铁周边      374.139535
大学周边      325.000000
客栈        397.666667
干净卫生      185.000000
民宿        258.500000
浪漫情侣      608.573529
海滨风光     1543.573770
火车站周边     968.000000
环境不错      357.666667
老板热情      385.000000
酒店公寓     1182.000000
青年旅舍      189.250000
Name: 价格, dtype: float64


#按照类型求最大价格
df['价格'].groupby(df['类型']).max()

>>>

类型
交通方便       421
亲子酒店      1686
休闲度假      4443
其他         881
印象好        297
商务出行      3159
地铁周边      2640
大学周边       325
客栈         553
干净卫生       185
民宿         506
浪漫情侣      1908
海滨风光     12926
火车站周边      968
环境不错       484
老板热情       385
酒店公寓      2309
青年旅舍       348
Name: 价格, dtype: int64


#按照类型求最小价格
df['价格'].groupby(df['类型']).min()

>>>

类型
交通方便     421
亲子酒店     269
休闲度假     358
其他        67
印象好      297
商务出行     401
地铁周边      67
大学周边     325
客栈       245
干净卫生     185
民宿       157
浪漫情侣     225
海滨风光     331
火车站周边    968
环境不错     176
老板热情     385
酒店公寓     588
青年旅舍      70
Name: 价格, dtype: int64

(6)数据离散化,按照价格将酒店分为3个等级,0-500为C,500-1000为B,大于1000为A,列名设置为“价格等级”。

#获取价格的最大值
df['价格'].max()

>>>

12926


#将价格进行分组
df['价格等级'] = pd.cut(
    df['价格'],
    [0,500,1000,12926],
    labels=['C','B','A']
)
df

>>>

	名字	类型	城市	地区	地点	评分	评分人数	价格	价格等级
0	香港嘉湖海逸酒店(Harbour Plaza Resort City)	休闲度假	香港	元朗	天水围 天恩路18号	4.600000	17604	422	C
1	香港铜锣湾皇悦酒店(Empire Hotel Hong Kong-Causeway Bay)	浪漫情侣	香港	东区	铜锣湾永兴街8号	4.500000	12708	693	B
2	香港碧荟酒店(The BEACON)	商务出行	香港	油尖旺	九龙旺角洗衣街88号	4.700000	328	747	B
3	香港湾仔帝盛酒店(Dorsett Wanchai)	浪漫情侣	香港	湾仔	皇后大道东387-397号	4.400000	5014	693	B
4	如心艾朗酒店(L‘hotel elan)	浪漫情侣	香港	观塘	观塘创业街38号	4.600000	3427	581	B
...	...	...	...	...	...	...	...	...	...
392	香港金泉酒店	地铁周边	香港	其他	香港旺角弥敦道607号新兴大厦1407室	4.283827	16	245	C
393	香港天天宾馆(TIN TIN GUEST HOUSE)	地铁周边	香港	油尖旺	旺角弥敦道607号新兴大厦1517A	3.200000	16	227	C
394	香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	海滨风光	香港	荃湾	荃湾 杨屋道8号	4.500000	45462	709	B
395	香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	海滨风光	香港	荃湾	荃湾 杨屋道8号	4.500000	45463	709	B
396	香港花盈酒店(家庭旅馆)(Bloomy Hotel)	地铁周边	香港	油尖旺	尖沙咀弥敦道87号华源大厦9字楼C2室	4.000000	273	256	C
397 rows × 9 columns

(7)获取评分均值最高和最低的地区的数据,分别使用append和concat方法将获取的两个数据集合并。

#将地区按照评分排序
df['评分'].groupby(df['地区']).mean().sort_values()

>>>

地区
葵青      4.040000
其他      4.184376
油尖旺     4.194714
南区      4.220000
罗湖区     4.283827
深水埗区    4.300000
离岛      4.371257
湾仔      4.375610
九龙城     4.428571
荃湾      4.442857
东区      4.480239
观塘      4.500000
中西区     4.548485
元朗      4.550000
沙田      4.575000
屯门      4.600000
Name: 评分, dtype: float64


#获取评分均值最高地区的数据
df2 = df[df['地区'] == '屯门']

#获取评分均值最低地区的数据
df1 = df[df['地区'] == '葵青']


#用append合并表
df1.append(df2)

>>>

	名字	类型	城市	地区	地点	评分	评分人数	价格	价格等级
43	香港荃湾旭逸酒店(Hotel Ease Tsuen Wan)	浪漫情侣	香港	葵青	葵涌圳边街15-19号	4.4	598	394	C
200	香港永倫800酒店(WINLAND800HOTEL)	其他	香港	葵青	新界青衣路一号	3.4	3098	196	C
201	香港青逸酒店(Rambler Oasis Hotel)	浪漫情侣	香港	葵青	青衣路1号	4.0	3091	349	C
214	香港华逸酒店(Rambler Garden Hotel)	浪漫情侣	香港	葵青	青衣 青衣路1号	4.0	3031	349	C
216	香港文化旅馆-翠雅山房(Hong Kong Heritage Lodge)	浪漫情侣	香港	葵青	香港九龙青山道800号	4.4	1726	423	C
25	香港黄金海岸酒店(Hong Kong Gold Coast Hotel)	海滨风光	香港	屯门	屯门 黄金海岸青山公路1号	4.7	6326	696	B
169	香港屯门贝尔特酒店(pentahotel Hong Kong Tuen Mun)	浪漫情侣	香港	屯门	新界屯门震寰路六号	4.5	998	582	B


#用concat合并表
pd.concat([df1,df2])


>>>

名字	类型	城市	地区	地点	评分	评分人数	价格	价格等级
43	香港荃湾旭逸酒店(Hotel Ease Tsuen Wan)	浪漫情侣	香港	葵青	葵涌圳边街15-19号	4.4	598	394	C
200	香港永倫800酒店(WINLAND800HOTEL)	其他	香港	葵青	新界青衣路一号	3.4	3098	196	C
201	香港青逸酒店(Rambler Oasis Hotel)	浪漫情侣	香港	葵青	青衣路1号	4.0	3091	349	C
214	香港华逸酒店(Rambler Garden Hotel)	浪漫情侣	香港	葵青	青衣 青衣路1号	4.0	3031	349	C
216	香港文化旅馆-翠雅山房(Hong Kong Heritage Lodge)	浪漫情侣	香港	葵青	香港九龙青山道800号	4.4	1726	423	C
25	香港黄金海岸酒店(Hong Kong Gold Coast Hotel)	海滨风光	香港	屯门	屯门 黄金海岸青山公路1号	4.7	6326	696	B
169	香港屯门贝尔特酒店(pentahotel Hong Kong Tuen Mun)	浪漫情侣	香港	屯门	新界屯门震寰路六号	4.5	998	582	B

(8)数据离散化,按照评分人数将酒店平均分为3个等级,三个等级的酒店数量尽量保持一致。评分人数最多的为A,最少的为C。列名设置为“热门等级”。

#将评分人数进行分组
bins = np.percentile(df['评分人数'],[0,33,67,100])

#添加列
df['热门等级'] =  pd.cut(
    df['评分人数'],
     bins,
     labels=['C','B','A']
     )
df

>>>

	类型	名字	城市	地区	地点	评分	评分人数	价格	热门等级
0	休闲度假	香港嘉湖海逸酒店(Harbour Plaza Resort City)	香港	元朗	天水围 天恩路18号	4.600000	17604	422	A
1	浪漫情侣	香港铜锣湾皇悦酒店(Empire Hotel Hong Kong-Causeway Bay)	香港	东区	铜锣湾永兴街8号	4.500000	12708	693	A
2	商务出行	香港碧荟酒店(The BEACON)	香港	油尖旺	九龙旺角洗衣街88号	4.700000	328	747	B
3	浪漫情侣	香港湾仔帝盛酒店(Dorsett Wanchai)	香港	湾仔	皇后大道东387-397号	4.400000	5014	693	A
4	浪漫情侣	如心艾朗酒店(L‘hotel elan)	香港	观塘	观塘创业街38号	4.600000	3427	581	A
...	...	...	...	...	...	...	...	...	...
392	地铁周边	香港金泉酒店	香港	其他	香港旺角弥敦道607号新兴大厦1407室	4.283827	16	245	C
393	地铁周边	香港天天宾馆(TIN TIN GUEST HOUSE)	香港	油尖旺	旺角弥敦道607号新兴大厦1517A	3.200000	16	227	C
394	海滨风光	香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	香港	荃湾	荃湾 杨屋道8号	4.500000	45462	709	A
395	海滨风光	香港如心海景酒店暨会议中心(L‘hotel Nina et Convention Centre)	香港	荃湾	荃湾 杨屋道8号	4.500000	45463	709	A
396	地铁周边	香港花盈酒店(家庭旅馆)(Bloomy Hotel)	香港	油尖旺	尖沙咀弥敦道87号华源大厦9字楼C2室	4.000000	273	256	B
397 rows × 9 columns

(9)选出评分人数为A,价格也为A的酒店数据,计算其平均评分。

df[(df['热门等级'].values == 'A')&(
    df['价格等级'].values == 'A')].mean()

>>>

评分         4.662791
评分人数    6609.744186
价格      2027.116279
dtype: float64

(10)取价格最高的5个酒店的数据,使用stack和unstack方法实现dataframe和Series之间的转换。

#将价格进行排序取前5
df = df.sort_values(by='价格',ascending=False)[:5]
df

>>>

	名字	类型	城市	地区	地点	评分	评分人数	价格	价格等级	热门等级
117	香港四季酒店(Four Seasons Hotel Hong Kong)	海滨风光	香港	中西区	中环 金融街8号	4.8	3461	12926	A	A
116	香港置地文华东方酒店(The Landmark Mandarin Oriental HK)	休闲度假	香港	中西区	中环 皇后大道中15号置地广场	4.8	1285	4443	A	B
89	奕居(The Upper House)	海滨风光	香港	中西区	金钟道88号太古广场	4.8	1369	4356	A	B
83	香港半岛酒店(The Peninsula Hong Kong)	海滨风光	香港	油尖旺	尖沙咀梳士巴利道	4.8	3693	3862	A	A
19	香港文华东方酒店(Mandarin Oriental Hong Kong)	海滨风光	香港	中西区	中环干诺道中5号	4.8	2452	3609	A	A


#将dataframe转换为Series
df = df.stack()
df

>>>

117  名字               香港四季酒店(Four Seasons Hotel Hong Kong)
     类型                                               海滨风光
     城市                                                 香港
     地区                                                中西区
     地点                                           中环 金融街8号
     评分                                                4.8
     评分人数                                             3461
     价格                                              12926
     价格等级                                                A
     热门等级                                                A
116  名字      香港置地文华东方酒店(The Landmark Mandarin Oriental HK)
     类型                                               休闲度假
     城市                                                 香港
     地区                                                中西区
     地点                                    中环 皇后大道中15号置地广场
     评分                                                4.8
     评分人数                                             1285
     价格                                               4443
     价格等级                                                A
     热门等级                                                B
89   名字                                奕居(The Upper House)
     类型                                               海滨风光
     城市                                                 香港
     地区                                                中西区
     地点                                         金钟道88号太古广场
     评分                                                4.8
     评分人数                                             1369
     价格                                               4356
     价格等级                                                A
     热门等级                                                B
83   名字                    香港半岛酒店(The Peninsula Hong Kong)
     类型                                               海滨风光
     城市                                                 香港
     地区                                                油尖旺
     地点                                           尖沙咀梳士巴利道
     评分                                                4.8
     评分人数                                             3693
     价格                                               3862
     价格等级                                                A
     热门等级                                                A
19   名字              香港文华东方酒店(Mandarin Oriental Hong Kong)
     类型                                               海滨风光
     城市                                                 香港
     地区                                                中西区
     地点                                           中环干诺道中5号
     评分                                                4.8
     评分人数                                             2452
     价格                                               3609
     价格等级                                                A
     热门等级                                                A
dtype: object



#将Series转换为dataframe
df = df.unstack()
df

>>>

名字	类型	城市	地区	地点	评分	评分人数	价格	价格等级	热门等级
117	香港四季酒店(Four Seasons Hotel Hong Kong)	海滨风光	香港	中西区	中环 金融街8号	4.8	3461	12926	A	A
116	香港置地文华东方酒店(The Landmark Mandarin Oriental HK)	休闲度假	香港	中西区	中环 皇后大道中15号置地广场	4.8	1285	4443	A	B
89	奕居(The Upper House)	海滨风光	香港	中西区	金钟道88号太古广场	4.8	1369	4356	A	B
83	香港半岛酒店(The Peninsula Hong Kong)	海滨风光	香港	油尖旺	尖沙咀梳士巴利道	4.8	3693	3862	A	A
19	香港文华东方酒店(Mandarin Oriental Hong Kong)	海滨风光	香港	中西区	中环干诺道中5号	4.8	2452	3609	A	A

(11)纵向拆分数据集,分为df1和df2,df1包含名字,类型,城市,地区,df2包含名字,地点,评分,评分人数,价格,价格等级,热门等级。

df1=df.loc[:][['名字','类型','城市','地区']]
df1

>>>

名字	类型	城市	地区
117	香港四季酒店(Four Seasons Hotel Hong Kong)	海滨风光	香港	中西区
116	香港置地文华东方酒店(The Landmark Mandarin Oriental HK)	休闲度假	香港	中西区
89	奕居(The Upper House)	海滨风光	香港	中西区
83	香港半岛酒店(The Peninsula Hong Kong)	海滨风光	香港	油尖旺
19	香港文华东方酒店(Mandarin Oriental Hong Kong)	海滨风光	香港	中西区


df2=df.loc[:][[
    '名字','地点','评分','评分人数',
    '价格','价格等级','热门等级']]
df2

>>>

名字	地点	评分	评分人数	价格	价格等级	热门等级
117	香港四季酒店(Four Seasons Hotel Hong Kong)	中环 金融街8号	4.8	3461	12926	A	A
116	香港置地文华东方酒店(The Landmark Mandarin Oriental HK)	中环 皇后大道中15号置地广场	4.8	1285	4443	A	B
89	奕居(The Upper House)	金钟道88号太古广场	4.8	1369	4356	A	B
83	香港半岛酒店(The Peninsula Hong Kong)	尖沙咀梳士巴利道	4.8	3693	3862	A	A
19	香港文华东方酒店(Mandarin Oriental Hong Kong)	中环干诺道中5号	4.8	2452	3609	A	A

(12)将df2按照价格进行排序,重新设置df2的索引。索引值等于价格排名。

#按照价格进行排序
df2 = df2.sort_values(by = '价格')
df2

>>>

名字	地点	评分	评分人数	价格	价格等级	热门等级
19	香港文华东方酒店(Mandarin Oriental Hong Kong)	中环干诺道中5号	4.8	2452	3609	A	A
83	香港半岛酒店(The Peninsula Hong Kong)	尖沙咀梳士巴利道	4.8	3693	3862	A	A
89	奕居(The Upper House)	金钟道88号太古广场	4.8	1369	4356	A	B
116	香港置地文华东方酒店(The Landmark Mandarin Oriental HK)	中环 皇后大道中15号置地广场	4.8	1285	4443	A	B
117	香港四季酒店(Four Seasons Hotel Hong Kong)	中环 金融街8号	4.8	3461	12926	A	A


#索引值等于价格排名
df2.index = range(1,len(df2)+1)
df2

>>>

名字	地点	评分	评分人数	价格	价格等级	热门等级
1	香港文华东方酒店(Mandarin Oriental Hong Kong)	中环干诺道中5号	4.8	2452	3609	A	A
2	香港半岛酒店(The Peninsula Hong Kong)	尖沙咀梳士巴利道	4.8	3693	3862	A	A
3	奕居(The Upper House)	金钟道88号太古广场	4.8	1369	4356	A	B
4	香港置地文华东方酒店(The Landmark Mandarin Oriental HK)	中环 皇后大道中15号置地广场	4.8	1285	4443	A	B
5	香港四季酒店(Four Seasons Hotel Hong Kong)	中环 金融街8号	4.8	3461	12926	A	A

(13)使用merge方法将df1和df2合并。

pd.merge(df1,df2,on='名字')

>>>

名字	类型	城市	地区	地点	评分	评分人数	价格	价格等级	热门等级
0	香港四季酒店(Four Seasons Hotel Hong Kong)	海滨风光	香港	中西区	中环 金融街8号	4.8	3461	12926	A	A
1	香港置地文华东方酒店(The Landmark Mandarin Oriental HK)	休闲度假	香港	中西区	中环 皇后大道中15号置地广场	4.8	1285	4443	A	B
2	奕居(The Upper House)	海滨风光	香港	中西区	金钟道88号太古广场	4.8	1369	4356	A	B
3	香港半岛酒店(The Peninsula Hong Kong)	海滨风光	香港	油尖旺	尖沙咀梳士巴利道	4.8	3693	3862	A	A
4	香港文华东方酒店(Mandarin Oriental Hong Kong)	海滨风光	香港	中西区	中环干诺道中5号	4.8	2452	3609	A	A

(14)将合并后的数据集保存数据到“酒店数据2.xlsx”。

df.to_excel('酒店数据2.xlsx')

你可能感兴趣的:(python,数据分析)