我想计算两个系列的所有元素之间的距离:
import pandas as pd
a = pd.Series([1,2,3], ['a', 'b', 'c'] )
b = pd.Series([4, 5, 6, 7], ['k', 'l', 'm', 'n'])
def dist(x, y):
return x - y #(or some arbitrary function)
我确实使用NumPy并转换为DataFrame来添加索引和列,从而达到了预期的结果.
import numpy as np
pd.DataFrame(a.values[np.newaxis, :] - b.values[:, np.newaxis],
columns=a.index,
index=b.index)
>>> a b c
k -3 -2 -1
l -4 -3 -2
m -5 -4 -3
n -6 -5 -4
这感觉不像在DataFrame上直接操作那么健壮,有没有一种方法可以在pandas中实现这一点?