熊猫:如何汇总多个列?

时间:2019-11-03 22:50:11

标签: python pandas pandas-groupby

如何创建一个以两列为输入并输出分数的函数;具体来说就是earth mover's distance

我找不到有关如何通过groupby实现它的文档?

1 个答案:

答案 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'])))