现有一文件fool-hangzhou.xlsx是从去哪儿网上爬取的有关杭州地区 美食店铺的毛坯数据。 用pandas库读入此文件,对生成的DataFrame对象进行数据清洗、整 理,最后将人均、店铺评分、排名、攻略提到数量及点评数量列的数 据都变换为整数或实数(保留一位小数)。 (1) 统计并输出人均消费最高的前20家店铺名称, (2) 统计并输出人均消费降序排列前100名店铺的平均值, (3) 统计并输出评分最高的前20家店铺名称, (4) 对排名列按升序排名,统计并输出排名为1-20的店铺名称 (5) 统计并输出点评数量最多的前20家店铺名称, (6) 统计并输出攻略提到数量最多的前20家店铺名称 (7) 统计并输出驴友到过比例大于0的店铺名称。
时间: 2024-02-24 14:53:48 浏览: 57
抱歉,作为AI语言模型,我没有权限访问或处理本地文件。但我可以为您提供一些处理数据的代码示例,您可以根据这些示例进行操作。
以下是针对上述问题的代码示例:
```python
import pandas as pd
# 读入数据
df = pd.read_excel('fool-hangzhou.xlsx')
# 数据清洗、整理
df = df.dropna() # 删除含有空值的行
df['人均'] = df['人均'].apply(lambda x: float(x[1:])) # 将人均列中的'¥'符号去除并转换为float类型
df['评分'] = df['评分'].apply(lambda x: float(x)) # 将评分列转换为float类型
df['排名'] = df['排名'].apply(lambda x: int(x[:-1])) # 将排名列中的'名'字去除并转换为int类型
df['攻略提到数量'] = df['攻略提到数量'].apply(lambda x: int(x)) # 将攻略提到数量列转换为int类型
df['点评数量'] = df['点评数量'].apply(lambda x: int(x)) # 将点评数量列转换为int类型
# (1) 统计并输出人均消费最高的前20家店铺名称
top_20_avg_price = df.sort_values(by='人均', ascending=False).iloc[:20]
print(top_20_avg_price['店铺名称'])
# (2) 统计并输出人均消费降序排列前100名店铺的平均值
top_100_avg_price = df.sort_values(by='人均', ascending=False).iloc[:100]['人均'].mean()
print(round(top_100_avg_price, 1))
# (3) 统计并输出评分最高的前20家店铺名称
top_20_rating = df.sort_values(by='评分', ascending=False).iloc[:20]
print(top_20_rating['店铺名称'])
# (4) 对排名列按升序排名,统计并输出排名为1-20的店铺名称
top_20_ranking = df.sort_values(by='排名').iloc[:20]
print(top_20_ranking['店铺名称'])
# (5) 统计并输出点评数量最多的前20家店铺名称
top_20_reviews = df.sort_values(by='点评数量', ascending=False).iloc[:20]
print(top_20_reviews['店铺名称'])
# (6) 统计并输出攻略提到数量最多的前20家店铺名称
top_20_guides = df.sort_values(by='攻略提到数量', ascending=False).iloc[:20]
print(top_20_guides['店铺名称'])
# (7) 统计并输出驴友到过比例大于0的店铺名称
visited_shops = df[df['驴友去过比例'] > 0]
print(visited_shops['店铺名称'])
```
阅读全文