(2)原神角色数据分析-2

功能一:

得到某个属性的全部角色,将其封装在class中

"""各元素角色信息:一对多"""
from pandas import DataFrame, Series
import pandas as pd
import numpy as np


class FindType:
    # 自动执行,将传入参数赋值给私有属性self.Attribute
    def __init__(self, attribute):
        self.Attribute = attribute

    def find_type(self):
        role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)
        # 补全
        role_things = role_things.fillna(axis=0, method="ffill")
        # 按照"属性"这一列的信息,将所有数据重新分组,得到一个字典
        things_list = role_things.groupby("属性").groups
        return role_things.loc[things_list[self.Attribute]]

功能二:

定向查找某个角色信息,传入参数为该角色的名称

"""查找对应角色:一对一"""
from pandas import DataFrame, Series
import pandas as pd
import numpy as np


class FindRole:
    def __init__(self, role_name):
        self.role_name = role_name

    def findrole(self):
        role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)
        # 将属性所包含的nan,进行填充
        role_things = role_things.fillna(axis=0, method="ffill")
        print(role_things)
        print()
        all_name = role_things["角色"]
        print(all_name)
        num = 0
        for x in all_name:
            if x == self.role_name:
                return_role = role_things.loc[:, "角色":]
                print(return_role.iloc[num])
                Attribute = return_role.iloc[num]["属性"]
                Name = return_role.iloc[num]["角色"]
                Hp = return_role.iloc[num]["生命值"]
                Def = return_role.iloc[num]["防御力"]
                Atk = return_role.iloc[num]["攻击力"]
                Break = return_role.iloc[num]["突破加成"]
                print(Name, Attribute, Hp, Def, Atk, Break)
            num += 1

功能三:

设置对应参数,筛选角色

比如,要找出生命值高于10000,防御力高于270,攻击力高于300的角色

"""设置限制参数,查找对应角色:多对多"""
from pandas import DataFrame, Series
import pandas as pd
import numpy as np


class Num:
    def __init__(self, Hp, Def, Atk):
        self.Hp = Hp
        self.Def = Def
        self.Atk = Atk

    def num(self):
        role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)
        role_things = role_things.fillna(axis=0, method="ffill")
        if self.Hp is None:
            if self.Def is None:
                if self.Atk is None:
                    print(role_things)
                else:
                    return_things = role_things.loc[role_things["攻击力"] > self.Atk]
                    print(return_things)
            else:
                if self.Atk is None:
                    return_things = role_things.loc[role_things["防御力"] > self.Def]
                    print(return_things)
                else:
                    return_things = role_things.loc[
                        (role_things["防御力"] > self.Def) & (role_things["攻击力"] > self.Atk)]
                    print(return_things)
        else:
            if self.Def is None:
                if self.Atk is None:
                    return_things = role_things.loc[role_things["生命值"] > self.Hp]
                    print(return_things)
                else:
                    return_things = role_things.loc[
                        (role_things["生命值"] > self.Hp) & (role_things["攻击力"] > self.Atk)]
                    print(return_things)
            else:
                if self.Atk is None:
                    return_things = role_things.loc[
                        (role_things["生命值"] > self.Hp) & (role_things["防御力"] > self.Def)]
                    print(return_things)
                else:
                    return_things = role_things.loc[
                        (role_things["生命值"] > self.Hp) & (role_things["防御力"] > self.Def) & (
                                    role_things["攻击力"] > self.Atk)]
                    print(return_things)

功能四:

按照某一参数,将角色顺序重新排列

例如,按照生命值大小,将所有角色重新排列

"""按照某一参数重新排序:一对多"""
from pandas import DataFrame, Series
import pandas as pd
import numpy as np


class Sort:
    def __init__(self, input_x):
        self.input_x = input_x

    def sort(self):
        type_bool = True
        role_things = pd.read_excel("C:/Users/YHT/Desktop/项目/原神各属性角色信息.xlsx", header=0, index_col=0)
        role_things = role_things.fillna(axis=0, method="ffill")
        return_things = role_things.sort_values(by=self.input_x, ascending=type_bool, axis=0)
        print(return_things)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/72932.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电商财务新时代:轻松自动对账,财务效率倍增

电商领域频繁的多平台财务对账常常令企业头痛不已。然而,随着轻易云数据集成平台的崭新解决方案,财务对账的痛点迎刃而解。本文通过引人入胜的实例,深入探讨电商财务对账的现状,突出轻易云数据集成平台在自动对账中的强大作用&…

感受RFID服装门店系统的魅力

嘿,亲爱的时尚追随者们!今天小编要给你们带来一股时尚新风潮,让你们感受一下什么叫做“RFID服装门店系统”,这个超酷的东西! 别着急,先别翻白眼,小编来解释一下RFID是什么玩意儿。它是射频识别…

RFID技术助力半导体制造行业自动化生产

由于芯片短缺问题和近2年海运拥堵和成本上升等因素,致使全球资本对于芯片制造工厂的投入增大,而中兴、华为的例子已经凸显出国产半导体供应链的重要性,除去地缘政治上的意义,发展半导体其实是中国经济的转型的必走之路。 半导体生…

Programming abstractions in C阅读笔记:p107-p110

《Programming Abstractions In C》学习第46天,p107-p110,3.1小节——“The concept of interface”,总结如下: 一、技术总结 1.client p108,调用library的program称为client。 2.interface p108,“To do …

【刷题笔记8.13】【动态规划相关】LeetCode题目:斐波那契数列、爬楼梯

【动态规划相关】LeetCode题目&#xff1a;斐波那契数列、爬楼梯 &#xff08;一&#xff09;爬楼梯 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 提示&#xff1a; 1 < n <…

第57步 深度学习图像识别:CNN可视化(Pytorch)

基于WIN10的64位系统演示 一、写在前面 由于不少模型使用的是Pytorch&#xff0c;因此这一期补上基于Pytorch实现CNN可视化的教程和代码&#xff0c;以SqueezeNet模型为例。 二、CNN可视化实战 继续使用胸片的数据集&#xff1a;肺结核病人和健康人的胸片的识别。其中&…

CSS变形与动画(一):transform变形 与 transition过渡动画 详解(用法 + 代码 + 例子 + 效果)

文章目录 变形与动画transform 变形translate 位移scale 缩放rotate 旋转skew 倾斜多种变形设置变形中心点 transition 过渡动画多种属性变化 变形与动画 transform 变形 包括&#xff1a;位移、旋转、缩放、倾斜。 下面的方法都是transform里的&#xff0c;记得加上。 展示效…

pconsc4 安装

Pconsc4 安装遇到的问题 Pconsc4-github 按照红框给的一行命令&#xff0c;一行毁所有。 1 gcc and g not found # 1 Start by updating the packages list:sudo apt update# 2 Install the build-essential package by typing:sudo apt install build-essential## The comm…

在 Windows 中恢复数据的 5 种方法

发生数据丢失的原因有多种。无论是因为文件被意外删除、文件系统或操作系统损坏&#xff0c;还是由于软件或硬件级别的存储故障&#xff0c;数据都会在您最意想不到的时候丢失。今天我们重点介绍五种数据恢复方法&#xff0c;以应对意外情况的发生。 1.从另一台机器启动硬盘 如…

MyBatis-Plus学习笔记(尚硅谷)

一、MyBatis-Plus 1.简介 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档&…

深入了解 Rancher Desktop 设置

Rancher Desktop 设置的全面概述 Rancher Desktop 拥有方便、强大的功能&#xff0c;是最佳的开发者工具之一&#xff0c;也是在本地构建和部署 Kubernetes 的最快捷方式。 本文将介绍 Rancher Desktop 的功能和特性&#xff0c;以及 Rancher Desktop 作为容器管理平台和本地…

Modbus TCP转Profibus DP网关modbus tcp报文解析

捷米JM-DPM-TCP网关。在Profibus总线侧作为主站&#xff0c;在以太网侧作为ModbusTcp服务器功能&#xff0c; 下面是介绍捷米JM-DPM-TCP主站网关组态工具的配置方法 2, Profibus主站组态工具安装 执行资料光盘中的安装文件setup64.exe或setup.exe安装组态工具。安装过程中一直…

Pyinstaller 打包 django 项目如何将命令行参数加入?

起因 Pyinstaller 打包 django 项目&#xff0c;打包成 manage.exe 后用命令行 cmd manage.exe runserver 0.0.0.0:8001 --noreload 来运行感觉很不方便。 希望能够直接把命令行参数也打包进去&#xff0c;直接运行 exe 。我走了些弯路&#xff0c;但最终实现了。 弯路 我看…

每天一道leetcode:300. 最长递增子序列(动态规划中等)

今日份题目&#xff1a; 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] …

多种求组合数算法

目录 求组合数Ⅰ&#xff08;递推&#xff09;核心理论理论推导典型例题代码实现 求组合数Ⅱ&#xff08;预处理&#xff09;核心理论典型例题代码实现 求组合数Ⅲ&#xff08;Lucas定理&#xff09;核心理论Lucas定理的证明1.证明Lucas定理的第一形式2.证明Lucas定理的第二形式…

小米平板6Max14即将发布:自研G1 电池管理芯片,支持33W反向快充

明天晚上7点&#xff08;8 月 14 日&#xff09;&#xff0c;雷军将进行年度演讲&#xff0c;重点探讨“成长”主题。与此同时&#xff0c;小米将推出一系列全新产品&#xff0c;其中包括备受瞩目的小米MIX Fold 3折叠屏手机和小米平板6 Max 14。近期&#xff0c;小米官方一直在…

【算法——双指针】LeetCode 1089 复写零

千万不要被这道题标注着“简单”迷惑了&#xff0c;实际上需要注意的细节很多。 题目描述&#xff1a; 解题思路&#xff1a; 正序遍历&#xff0c;确定结果数组的最后一个元素所在的位置&#xff1b;知道最后一个元素的位置后倒序进行填充。 先找到最后一个需要复写的数 先…

CHATGPT源码简介与使用指南

CHATGPT源码的基本介绍 CHATGPT源码备受关注&#xff0c;它是一款基于人工智能的聊天机器人&#xff0c;旨在帮助开发者快速搭建自己的聊天机器人&#xff0c;无需编写代码。下面是对CHATGPT搭建源码的详细介绍。 CHATGPT源码的构建和功能 CHATGPT源码是基于Google的自然语言…

汽配企业WMS系统:提升作业效率与过程管控

随着汽配企业竞争的加剧和业务模式的复杂化&#xff0c;许多企业意识到提高仓库作业效率和成本控制能力是企业成功的关键。因此&#xff0c;越来越多的企业选择引入WMS仓储管理系统。然而&#xff0c;汽配企业产品复杂&#xff0c;且从业的人员大部分是老一辈人员&#xff0c;内…