• 【python数据分析刷题】-N08.排序&函数



    活动地址:CSDN21天学习挑战赛

    在这里插入图片描述

    📢📢📢📣📣📣
    哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
    一位上进心十足的【大数据领域博主】!😜😜😜
    中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
    擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
    ✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
    ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

    前言

    Python实际针对数据分析的学习是库,用库来解决一系列的数据分析问题

    🐴 DA44 某店铺消费最多的前三名用户

    🚀 描述

    现有某店铺会员消费情况sales.csv。包含以下字段:
    
    user_id:会员编号;
    recency:最近一次消费距离当天的天数;
    frequency:一段时间内消费的次数;
    monetary:一段时间内消费的总金额。
    请你统计消费金额最多的前3名用户。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    📖 输入描述
    数据集可以从当前目录下sales.csv读取。

    在这里插入图片描述
    📖 输出描述:
    输出销售金额最多的前3名用户,索引从0开始。
    以上数据集的输出如下图所示。

    在这里插入图片描述
    🍌🍌 答案

    import pandas as pd
    sales = pd.read_csv('sales.csv')
    print(sales.sort_values(by=['monetary'],ascending=False).reset_index(drop=True).head(3))
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    🐴 DA45 按照等级递增序查看牛客网用户信息

    🚀 描述

    现有一个Nowcoder.csv文件,记录了牛客网的部分用户的个人信息,包含如下字段(字段与字段之间以逗号间隔):
    Nowcoder_ID:用户ID
    Name:用户名
    Level:等级
    Achievement_value:成就值
    Num_of_exercise:刷题量
    Graduate_year:毕业年份
    Language:常用语言
    牛牛在查看这些数据的时候,等级都是混乱的,他想按照1-7级的递增序查看这些用户数据,你能帮他输出一下吗?
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    📖 输入描述
    数据集直接从当前目录下的Nowcoder.csv文件中读取。
    在这里插入图片描述
    📖 输出描述:
    输出排序后的全部数据,包括行号。
    在这里插入图片描述
    🍌🍌 答案

    import pandas as pd
    
    pd.set_option('display.width', 300)  # 设置字符显示宽度
    pd.set_option('display.max_rows', None)  # 设置显示最大行
    pd.set_option('display.max_columns', None)
    Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
    
    data = Nowcoder.sort_values(by='Level', ascending = False)
    print(data)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    🐴 DA46 某店铺用户消费特征评分

    🚀 描述

    现有某店铺会员消费情况sales.csv。包含以下字段:
    
    user_id:会员编号;
    recency:最近一次消费距离当天的天数;
    frequency:一段时间内消费的次数;
    monetary:一段时间内消费的总金额。
    请你分别对每个用户的每个消费特征进行评分。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    📖 输入描述
    数据集可以从当前目录下sales.csv读取。
    在这里插入图片描述
    📖 输出描述:
    请你对每个用户销售情况的每个特征进行评分,分值为1-4分。对于recency特征,值越小越好。对于frequency和monetary值越大越好。请分别将对应的数据进行四等分并评分,如对于recency:

    数值小于等于下四分位数则评为4分;
    大于下四分位数并且小于等于中位数则评为3分;
    大于中位数且小于等于上四分位数则评为2分;
    大于上四分位数则评为1分。
    对于frequency和monetary则方法刚好相反。

    要求给所有数据进行评分,并输出前5行。以上数据的输出结果如下:
    在这里插入图片描述
    🍌🍌 答案

    import pandas as pd
    sales = pd.read_csv('sales.csv')
    
    sales['R_Quartile'] = pd.qcut(sales['recency'],[0,0.25,0.5,0.75,1],
                                 labels=['4','3','2','1']).astype('int')
    sales['F_Quartile'] = pd.qcut(sales['frequency'],[0,0.25,0.5,0.75,1],
                                 labels=['1','2','3','4']).astype('int')
    sales['M_Quartile'] = pd.qcut(sales['monetary'],[0,0.25,0.5,0.75,1],
                                 labels=['1','2','3','4']).astype('int')
    print(sales.head())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    🐴 DA47 筛选某店铺最有价值用户中消费最多前5名

    🚀 描述

    现有某店铺会员消费情况sales.csv。包含以下字段:
    
    user_id:会员编号;
    recency:最近一次消费距离当天的天数;
    frequency:一段时间内消费的次数;
    monetary:一段时间内消费的总金额。
    请你统计最有价值的用户中消费金额最多的前5名用户。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    📖 输入描述
    数据集可以从当前目录下sales.csv读取。
    在这里插入图片描述
    📖 输出描述:

    请你先对每个用户销售情况的每个特征进行评分,分值为1-4分。再将所有评分拼接到一起形成新的列RFMClass。
    
    评分规则如下: 对于recency特征,值越小越好。对于frequency和monetary值越大越好。如对于recency:
    
    数值小于等于下四分位数则评为4分;
    大于下四分位数并且小于等于中位数则评为3分;
    大于中位数且小于等于上四分位数则评为2分;
    大于上四分位数则评为1分。
    对于frequency和monetary则方法刚好相反。
    
    请你输出评分后的数据的前5行并输出最有价值的用户(评分为“444”)中销售总金额最高的前5位(索引从0开始),以上数据集的输出如下图所示(两次输出之间有一个空行)。 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    🍌🍌 答案

    import pandas as pd
    sales = pd.read_csv('sales.csv')
    
    sales["monetary"] = sales["monetary"].astype("float")
    sales["R_Quartile"] = pd.qcut(sales["recency"], [0, 0.25, 0.5, 0.75, 1],
                                  labels=["4", "3", "2", "1"]).astype("str")
    sales["F_Quartile"] = pd.qcut(sales["frequency"], [0, 0.25, 0.5, 0.75, 1],
                                  labels=["1", "2", "3", "4"]).astype("str")
    sales["M_Quartile"] = pd.qcut(sales["monetary"], [0, 0.25, 0.5, 0.75, 1],
                                  labels=["1", "2", "3", "4"]).astype("str")
    sales['RFMClass']=sales['R_Quartile']+sales['F_Quartile']+sales['M_Quartile']
    sales1=sales[['user_id','recency','frequency','monetary','RFMClass']]
    data1=sales1.head(5)
    print(data1)
    data2=sales1[sales1['RFMClass']=='444'].sort_values(by='monetary',ascending=False).head(5).reset_index(drop=True)
    print('\n')
    print(data2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    【kr】强化学习之旅 1 环境配置
    云服务器遭到黑客入侵植入木马病毒排查过程
    【算法|贪心算法系列No.4】leetcode55. 跳跃游戏 & 45. 跳跃游戏 II
    12 行列式01--- 定义、计算 与性质: n级行列式的性质、行列式计算
    simple-HGN 介绍 - 一种简单有效的异构图建模方法
    【附源码】计算机毕业设计SSM手游账号交易系统
    大数据技术学习笔记(三)—— Hadoop 的运行模式
    北大学者发现,经常喝牛奶,增加中国人肝癌和乳腺癌风险
    硬件电子基础 -单片机信号转换
    创建单链表,并对单链表的数据进行增、删、改、查、数据输入、打印等操作(C++)
  • 原文地址:https://blog.csdn.net/weixin_41645135/article/details/126373484