IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Pandas 根据一张DataFrame的两列数据对另一张DataFrame的多列值进行批量替换 -> 正文阅读

[人工智能]Pandas 根据一张DataFrame的两列数据对另一张DataFrame的多列值进行批量替换

背景

掌柜最近在做王者荣耀2022KPL春季赛的赛事数据分析,下表kpl是从官方数据平台获取到的2022KPL春季赛常规赛近500场的赛事数据:
在这里插入图片描述
这里大家可以很明显的看到team_bh和team_ph两列下面都是一堆数字,其实它们分别代表的是王者荣耀里面的各个英雄。下表code就是掌柜整理的2022KPL春季赛常规赛登场的所有英雄和对应的数字编码:
在这里插入图片描述

问题

  1. 将kpl表中的team_bh和team_ph两列数据进行拆分,分别得出每个战队ban(禁用)的四位英雄和pick(选用)的五位英雄;
  2. 对拆分后的禁用英雄和选用英雄根据code表进行批量替换。

思路

  1. 第一个问题其实考的是pandas对DataFrame的一列里面多个数据拆分为多列,但每列只有一个数据的方法。在pandas里面对于这样的文本数据,可以使用.str.split()方法按竖线(|)进行拆分, 生成新的DataFrame;然后再用join对两表进行合并,最后删除多余列。
  2. 第二个问题则是对pandas的多列进行多值替换的考察。通常可以采用map()函数、replace()函数或apply()函数来进行替换。

具体方法

  1. 这里掌柜就先给出参考代码 再做解说:
import pandas as pd

ban_name = ['ban' + str(x+1) for x in range(4)] #新生成的列名(禁用英雄四位)
ban = kpl['team_bh'].str.split('|', expand=True) #按竖线|进行拆分
ban.columns = ban_name
kpl = kpl.join(ban)                               #合并两表
kpl

拆分后的效果图:
在这里插入图片描述
可以看到最后四列就是拆分后的每队禁用英雄,这里取名为ban加上数字1-4,表示禁用英雄的顺序,ban1就是最先禁用的英雄。同理可以对team_ph列进行如上操作,然后删除team_bh和team_ph两列,得到拆分后的新kpl表:
在这里插入图片描述
这样就解决了第一个问题,下面来看第二个问题的具体方法:

  1. 依然先给出关键的参考代码(其实主要就这两句):
hero_code = code.set_index(['code'])['hero'].to_dict()
kpl['ban1'] = kpl['ban1'].map(hero_code)

替换后新的kpl表:
在这里插入图片描述
首先掌柜对code表进行了一个转换,将里面的数字编码和对应英雄转换为字典格式,这样方便后面进行批量的多值替换。
接着掌柜用map()函数进行一个映射操作(也就是每一列的数字都根据字典中的key进行一个匹配,如果适配,就替换为对应的英雄名字);当然这里也可以使用replace()函数或apply()函数来替换,但是速度没有map()函数的快

结果

现在这张经过处理后的kpl赛事数据表就干净很多了,我们可以一眼就看出来每个战队禁用英雄的顺序(公孙离和鲁班大师几乎都在第一ban位🤣)和选用英雄的优先级(夏侯惇和澜一选的概率较大),后面将会根据各个战队进行一系列的数据分析和挖掘工作,敬请期待!🤝😁

PS:完整的代码会在整个项目做完后放上Github,谢谢耐心等待和理解。

参考资料:
按照字典dict替换Pandas DataFrame的值:三种方法性能比较

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:41:49  更:2022-04-26 11:42:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:32:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码