[英]How to merge two data frames together with no common ID?
我试图从这里运行示例代码:
https://www.dataquest.io/blog/k-nearest-neighbors-in-python/
样本数据可在此处获得:
https://www.dropbox.com/s/b3nv38jjo5dxcl6/nba_2013.csv?dl=0
我在这里收到错误:
lebron_normalized = nba_normalized [nba [“player”] ==“LeBron James”]
错误:KeyError:'player'
当我查看数据集时,我发现nba_normalized
没有名为player
的字段,因为nba_normalized
只是数字。 如何找到勒布朗詹姆斯的归一化向量,并在此基础上找到euclidean_distances
?
是的,我很确定OP因为KeyError而在某个时刻覆盖了nba
。
为了解释一下,屏蔽操作不是合并,而是在数据帧的子集上执行的真/假向量,因此您不必担心加入密钥,而是更有兴趣确保数据帧的组成相似。
import pandas as pd
nba = pd.read_csv('nba_2013.csv')
distance_columns = ['age', 'g', 'gs', 'mp', 'fg', 'fga', 'fg.', 'x3p', 'x3pa', 'x3p.', 'x2p', 'x2pa', 'x2p.', 'efg.', 'ft', 'fta', 'ft.', 'orb', 'drb', 'trb', 'ast', 'stl', 'blk', 'tov', 'pf', 'pts']
nba_numeric = nba[distance_columns]
nba_normalized = (nba_numeric - nba.mean()) / nba_numeric.std()
def lebron(x):
if "lebron" in x.lower():
return True
return False
lebron_normalized = nba_normalized[nba.player.isin(set(filter(lebron, nba.player)))]
# Heh
print(lebron_normalized.head(4))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.