python - Pandas 遍历行,创建用于比较和计算距离的数据框
问题描述
family drafted IQ>120 Height>6.5 ShootPctg >0.4
James 2019 1 1 1
Richardson 2019 1 1 0
Embid 2019 0 1 1
Curry 2019 1 0 1
Ingram 2018 0 1 0
Ball 2019 1 0 1
James 2018 0 0 0
McGrady 2018 1 1 1
Curry 2017 1 0 0
Embid 2016 1 1 0
Kidd 2015 1 1 1
假设我有一个像这样的数据框,其中包含篮球运动员的姓名及其特征。在这个虚构的数据集中,许多球员的兄弟姐妹在同一个联赛中打球,但在不同的年份被选中。我有兴趣了解这些球员与之前选秀中的球员相比有何不同。然而,重要的一点是,我不想将这些球员与他们的兄弟姐妹进行比较。为此,首先我创建了一个玩家特征向量:
df = df.assign(vector = df.iloc[:, -3:].values.tolist())
df['vector'] = df['vector'].apply(np.array)
然后我得到:
family drafted IQ>120 Height>6.5 ShootPctg >0.4 vector
James 2019 1 1 1 [1, 1, 1]
Richardson 2019 1 1 0 [1, 1, 0]
Embid 2019 0 1 1 [0, 1, 1]
Curry 2019 1 0 1 [1, 0, 1]
Ingram 2018 0 1 0 [0, 1, 0]
Ball 2019 1 0 1 [1, 0, 1]
James 2018 0 0 0 [0, 0, 0]
McGrady 2018 1 1 1 [1, 1, 1]
Curry 2017 1 0 0 [1, 0, 0]
Embid 2016 1 1 0 [1, 1, 0]
Kidd 2015 1 1 1 [1, 1, 1]
鉴于现在我有一个总结球员特征的向量,我可以简单地将每个球员的向量与前一年选秀的球员(不包括他们的兄弟姐妹)进行比较,然后取平均值。以詹姆斯2019年选秀为例:詹姆斯的比较集是2019年之前选秀的所有球员,不包括他的兄弟詹姆斯2018年选秀的球员。即,
family drafted IQ>120 Height>6.5 ShootPctg >0.4 vector
McGrady 2018 1 1 1 [1, 1, 1]
Curry 2017 1 0 0 [1, 0, 0]
Embid 2016 1 1 0 [1, 1, 0]
Kidd 2015 1 1 1 [1, 1, 1]
然后我想将詹姆斯特征向量与上面列出的球员进行比较并取平均值。最终输出应该是(注意:我在 dstnctv 列上编了数字):
family drafted IQ>120 Height>6.5 ShootPctg >0.4 dstnctv
James 2019 1 1 1 0.23
Richardson 2019 1 1 0 0.12
Embid 2019 0 1 1 0.14
Curry 2019 1 0 1 0.23
Ingram 2018 0 1 0 0.12
Ball 2019 1 0 1 0.11
James 2018 0 0 0 0.09
McGrady 2018 1 1 1 0.05
Curry 2017 1 0 0 0.11
Embid 2016 1 1 0 0.02
Kidd 2015 1 1 1 0.03
解决方案
推荐阅读
- php - Laravel 8 应用程序 - 当我尝试下载压缩文件时无法访问该站点
- c++ - 如何在 xamarin UWP 中使用 C++ lib (.so)
- java - : 创建类路径资源中定义的名称为“requestMappingHandlerMapping”的 bean 时出错
- reactjs - 如何将数据从模板组件传递到反应中的其他组件
- laravel - 为什么文件 /resources/views/errors/404.blade.php 没有在无效的 url 上打开?
- python - 根据分组场景熊猫中的最大值数替换列值
- ruby-on-rails - 为什么会出现错误`发生未处理的低级错误。
`发生?即使我验证了 SECRET_KEY_BASE 已在 Linux 中正确设置 - python-3.x - Scrapy 使用 files.middleware 下载不带扩展名的给定文件
- postgresql - 如何在我的虚拟机上使用 dbeaver 连接到 Postgresql 数据库(在我的本地机器上)?
- excel - 来自excel的TinyMCE粘贴