【发布时间】:2019-11-03 22:50:11
【问题描述】:
如何创建一个以两列作为输入并输出分数的函数;具体来说,earth mover's distance。
我找不到有关如何通过 groupby 实现它的文档?
【问题讨论】:
标签: python pandas pandas-groupby
如何创建一个以两列作为输入并输出分数的函数;具体来说,earth mover's distance。
我找不到有关如何通过 groupby 实现它的文档?
【问题讨论】:
标签: python pandas pandas-groupby
如果我了解您要完成的工作,您可以 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'])))
【讨论】: