sharing

import pandas as pd
import numpy as np
import random

df=pd.DataFrame(data=data)

# print(df)
#描述性分析:求min、max、count,nunique
# print(df["name"].count())
# print(df["search_index"].max())
# print(df["search_index"].min())
# print(df["type"].nunique())
# print(np.unique(df["type"]))
#分组统计
#聚合统计 groupby
# #1. 字典方案
# #根据电视剧类型,统计搜索指数的最大值,搜索指数的总量,电视剧数量。
# tb1=df.groupby(by="type").agg(
#     {"search_index":[np.max,"sum"],
#      "trending":["count"]
#     })
# print(tb1)
# # #列表式
# # #在搜索趋势上升的电视剧中,统计搜索指数的最小值,搜索趋势上升的电视剧数量。
# tb2=df.loc[df["trending"]=="increase"].groupby(by="type")["search_index"].agg(["min","count"])
# print(tb2)
 #命名式
 #根据趋势情况(上升,下降,不变)及影片类型统计电视剧数量
tb3=df.groupby(by=["type","trending"]).agg(电视剧数量=('name','count'))
# print(tb3)
# # # #改变索引
#print(type(tb3))
tb3.reset_index(drop=False,inplace=True)
# print(tb3)
# #改变列名
tb3.columns=['电视剧类型','搜索趋势','电视剧数量']
# print(tb3)
#


restart_game=1
# #
# # #1.指定游戏难度
def difficulty():
    list=[]
    i=0
    your_number=int(input("choose a difficulty.Type 1 to 5:"))
    while i <=(your_number+5):
        append_data=random.choice(data)
        if append_data not in list:
            list.append(append_data)
            i+=1
    return list

#判断是否闯关成功
def success(score):
    if score==3:
        result="成功"
    else:
        result="失败"
    return result
#2.闯关(完成3道题目)
while restart_game==1:
    score=0
    subject=difficulty()
    Q=pd.DataFrame(data=subject)
    print(Q.loc[:,"name"])
    question1=str(input("请问,您认为以上电视剧中搜索指数最高的是哪部电视剧:"))
#     #正确的答案通过max函数获取最大值,并通过loc的key来访问到最大值对应的电视剧名称
    max_value=Q.loc[Q["search_index"]==Q["search_index"].max(),"name"].values[0]
    if question1==max_value:
        print("您答对了第一题,请继续!")
        score+=1
    else:
        print("您打错了,抱歉")
    question2=int(input("请问,您认为以上电视剧中本周搜索趋势上升的电视剧有几部:"))
    increase_value = Q.loc[Q["trending"] == "increase"].agg({"name": ["count"]}).values[0][0]
    if question2 == increase_value:
        print("您答对了第二题,请继续!")
        score += 1
    else:
        print("您打错了,抱歉")
    #本次随机筛选电视剧的所有类型
    type_catelog=np.unique(Q["type"])
    type_1=random.choice(type_catelog)
    type_2=random.choice(type_catelog)
    if type_2==type_1:
        type_2 = random.choice(type_catelog)
        #字符串格式化
    question3 = str(input(f"请问,您认为以上电视剧中{type_1}类电视剧中和{type_2}类电视剧谁更受欢迎(表现为搜索指数总和更高):"))
#     #设置条件,只需要对需要比较的电视剧类型进行求和
    agg_result = Q.loc[(Q["type"] == type_1) | (Q["type"] == type_2)].groupby(by="type").agg(
    {"search_index": ["sum"]})
    # 重索引
    agg_result.reset_index(drop=False, inplace=True)
    # 改变列名
    agg_result.columns = ['type', 'total']
    agg_result_T = agg_result.T
    type_1_number = agg_result_T.iloc[1, 0]
    type_2_number = agg_result_T.iloc[1, 1]
    answer_number=[type_1_number if type_1_number>=type_2_number else type_2_number][0]
    answer=agg_result.loc[agg_result["total"]==answer_number,"type"].values[0]
    if question3 == answer:
        print("您答对了第三题,闯关成功!")
        score += 1
    else:
        print("您打错了,抱歉")
    result=success(score)
    print(f"您本次得分:{score},结果为:闯关{result}")
    restart_game=int(input("想要重新开始吗?按1重新开始,按其他键退出:"))

#
#


data=[
    {"name":"黑暗荣耀第二季",
    "search_index":388113,
    "type":"悬疑",
     "actors":"宋慧乔、李到晛",
     "trending":"increase"
     },
    {"name": "星落凝成糖",
     "search_index": 269476,
     "type": "爱情",
     "actors": "陈星旭、李兰迪",
     "trending":"decrease"
     },
    {"name": "归路",
     "search_index": 703518,
     "type": "都市",
     "actors": "井柏然、谭松韵",
     "trending":"unchanged"
     },
    {"name": "他是谁",
     "search_index": 1435500,
     "type": "悬疑",
     "actors": "张译、赵阳",
     "trending":"increase"
     },
    {"name": "风雨送春归",
     "search_index": 63327,
     "type": "都市",
     "actors": "王志文、于震",
    "trending":"decrease"
     },
    {"name": "情满九道弯",
     "search_index": 55807,
     "type": "都市",
     "actors": "韩东君、热依扎",
    "trending":"increase"
     },
    {"name": "重紫",
     "search_index": 54646,
     "type": "古装",
     "actors": "杨超越、徐正溪",
"trending":"unchanged"
     },
    {"name": "回廊亭",
     "search_index": 50673,
     "type": "犯罪",
     "actors": "邓家佳、张新成",
"trending":"decrease"
     },
    {"name": "去有风的地方",
     "search_index": 45310,
     "type": "都市",
     "actors": "刘亦菲、李现",
"trending":"decrease"
     },
    {"name": "我们的日子",
     "search_index": 43039,
     "type": "都市",
     "actors": "李小冉、李乃文",
"trending":"increase"
     },
    {"name": "风吹半夏",
     "search_index": 26553,
     "type": "爱情",
     "actors": "赵丽颖、欧豪",
"trending":"decrease"
     },
    {"name": "心居",
     "search_index": 22174,
     "type": "都市",
     "actors": "海清、童瑶 ",
"trending":"decrease"
     },
    {"name": "县委大院",
     "search_index": 11158,
     "type": "都市",
     "actors": "胡歌、吴越",
"trending":"unchanged"
     },
    {"name": "对我而言危险的他",
     "search_index": 24055,
     "type": "悬疑",
     "actors": "李墨之、樊治欣",
"trending":"increase"
     },
    {"name": "勇者无惧",
     "search_index": 12257,
     "type": "犯罪",
     "actors": "张丹峰、袁雨萱",
"trending":"increase"
     },
    {"name": "梦华录",
     "search_index": 14375,
     "type": "古装",
     "actors": "刘亦菲、陈晓",
"trending":"decrease"
     },
    {"name": "狂飙",
     "search_index": 19420,
     "type": "都市",
     "actors": "张译、张颂文",
"trending":"unchanged"
     },
    {"name": "唐朝诡事录",
     "search_index": 14653,
     "type": "悬疑",
     "actors": "杨志刚、杨旭文",
"trending":"increase"
     }

]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值