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年之前征召的所有球员,排除他哥哥詹姆斯在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]
然后我想把James特征向量和上面列出的player进行比较,取平均值。最终输出应该是(注:我在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
目前没有回答
相关问题 更多 >
编程相关推荐