当前位置: 首页 > news >正文

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

功能一:

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

"""各元素角色信息:一对多"""
from pandas import DataFrame, Series
import pandas as pd
import numpy as npclass FindType:# 自动执行,将传入参数赋值给私有属性self.Attributedef __init__(self, attribute):self.Attribute = attributedef 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("属性").groupsreturn role_things.loc[things_list[self.Attribute]]

功能二:

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

"""查找对应角色:一对一"""
from pandas import DataFrame, Series
import pandas as pd
import numpy as npclass FindRole:def __init__(self, role_name):self.role_name = role_namedef 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 = 0for 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 npclass Num:def __init__(self, Hp, Def, Atk):self.Hp = Hpself.Def = Defself.Atk = Atkdef 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 npclass Sort:def __init__(self, input_x):self.input_x = input_xdef sort(self):type_bool = Truerole_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)

http://www.lryc.cn/news/118418.html

相关文章:

  • 138. 复制带随机指针的链表
  • Windows中redis怎么设置密码
  • 租赁OLED透明屏:打造独特商业体验的智慧选择
  • Nacos服务治理—负载均衡
  • flask-----初始项目架构
  • 揭秘史上最全可视化大屏模板,00后亲测好用到离谱,效率加速99%
  • nginx基于主机和用户访问控制以及缓存简单例子
  • React使用antd的图片预览组件,点击哪个图片就预览哪个的设置
  • 排序的介绍
  • appuploader使用教程
  • 企业权限管理(七)-权限操作
  • 【深度学习笔记】TensorFlow 常用函数
  • 函数的递归与迭代
  • win10 + VS2022 安装opencv C++
  • nginx反向代理及负载均衡的实现
  • Tomcat部署SpringBoot项目
  • Oracle笔记--dblink
  • Mapbox加载天地图CGCS2000矢量瓦片地图
  • day3 STM32 GPIO口介绍
  • 【ElasticSearch】ElasticSearch 内存设置原则
  • VUE+ElementUI的表单验证二选一必填项,并且满足条件后清除表单验证提示
  • NLP 时事和见解【2023】
  • Windows 环境下 Python3 离线安装 cryptography 失败
  • 年轻代频繁GC ParNew导致http变慢
  • 在.NET 6.0中自定义接口路由
  • Kotlin读写分离CopyOnWriteArrayList
  • centos自动同步北京时间
  • element-ui表格跨页多选实现
  • 线性代数(三) 线性方程组向量空间
  • 学习跨度级交互以提取方面情感三元组