我有一个列
df = pd.DataFrame({'Name': ['Harry', 'John', 'Peter', 'Stan', 'Petra'], 'Score': [10, 9, 5, 7, 8]})
我可以使用 itertools 来获取矩阵
for a, b in itertools.combinations(df['Score'], 2):
print (a, b)
返回将每个值与 x 和 y 索引进行比较的矩阵的最佳方式是什么。例如:
Harry John Peter Stan Petra
Harry - 1 5 3 2
John -1 - 4 2 1
etc....
最佳答案
您可以使用np.subtract.outer
使用 DataFrame
构造函数:
df = pd.DataFrame(np.subtract.outer(df['Score'], df['Score']),
index=df['Name'],
columns=df['Name'])
或广播
:
a = df['Score'].values
df = pd.DataFrame(a[:, None] - a, columns = df['Name'], index=df['Name'])
print (df)
Name Harry John Peter Stan Petra
Name
Harry 0 1 5 3 2
John -1 0 4 2 1
Peter -5 -4 0 -2 -3
Stan -3 -2 2 0 -1
Petra -2 -1 3 1 0
关于python - 比较单列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48378015/