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

Original: https://blog.csdn.net/weixin_51747569/article/details/121617376
Author: 听风倾雨
Title: Pandas第三部分Day5练习题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/740640/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球