【数据处理与分析】景点数据简易处理

任务详情:

获取指定省、直辖市或自治区的 景点的平均销售额 和 销售额最多的景点名称,全国旅游景点数据在下方链接中给出。

其中各字段表示含义如下:

中文含义景点编号景点名称景点所在地区景点级别景点位置价格销量
字段名idtitleplaceleveladdresspricesales

任务一:输出指定省、直辖市或自治区的 景点的平均销售额,结果 保留两位小数(四舍五入);

任务二:输出指定省、直辖市或自治区中 销售额最多的景点名称,如果存在两个销售额最大的景点,取索引排名靠前的景点。

任务要求:

1. 程序接收 str 类型的参数 省、直辖市或自治区的名称,程序返回结果是 list 数据类型;

2. 返回结果的具体形式:[销售额平均值: float, 景点名称: str]

3. 销售额为(price * sales),平均值为指定省、直辖市市或自治区销售额的平均值,结果保留两位小数(四舍五入)

4. 可以先从 place 列中出景点所在省、市或自治区;

5. 任务所需文件在已经下方给出,utf-8编码

思路:

1.先算出各个景点的销售额并添加到DataFrame里

2.取出所有景点的所在地区进行遍历,并把省份用split()方法提取出来,并且添加到列表里,随后把列表的值赋值到df['place']

3. 通过df[df['columns']==元素].index找到传入值的所有的索引,再遍历得到的索引,通过df['columns']['index']获取到之前所计算的景点的销售额,再添加到列表里

4.根据Numpy里的np.mean()方法获取到这个省份销售额的平均值,并根据任务一的要求把类型更改好

5.再使用np.max()方法找到任务二所需的销售额最多的那个值,再通过之前找到元素索引的方法找到其索引,再通过索引找到相对应景点的名字,再把任务所需的两个值添加到列表中返回。

代码如下:

import pandas as pd
import numpy as np

class Solution:
    def simpleScenic(self, city_name: str) -> list:
        df=pd.read_csv('#########')
        df['count']=(df['price']*df['sales']).round(2)
        df_place=df['place'].values
        list_place=list()
        for x in df_place:
            list_place.append(x.split('·')[0])
        df['place']=list_place
        place=df[df['place']==city_name].index.values
        list_price=list()
        for x in place:
            list_price.append(df['count'][x])
        res1=float('%.2f'%(np.mean(list_price)))
        a=np.max(list_price)
        title=df[df['count']==a].index.values
        res2=df['title'][title].values[0]
        res=list()
        res.append(res1)
        res.append(res2)
        return res
        pass

以上仅代表个人的思路,如有欠缺请指教。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红鼻子z

感谢打赏,我会继续努力的!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值