如何创建一个以两列为输入并输出分数的函数;具体来说就是earth mover's distance。
我找不到有关如何通过groupby实现它的文档?
答案 0 :(得分:0)
如果我了解您要完成的工作,可以使用groupby.apply
lambda
或创建一个函数并使用groupby.apply
:
from scipy.stats import wasserstein_distance
import pandas as pd
import numpy as np
df = pd.DataFrame([np.random.randint(0,10,2),
np.random.randint(0,10,2),
np.random.randint(0,10,2),
np.random.randint(0,10,2)], columns=list('AB'))
df['C'] = list('AABB')
# use apply with lambda function
print(df.groupby('C').apply(lambda df: wasserstein_distance(df['A'], df['B'])))