【问题标题】:Pandas: How to aggregate multiple columns?Pandas:如何聚合多个列?
【发布时间】:2019-11-03 22:50:11
【问题描述】:

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

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

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案1】:

    如果我了解您要完成的工作,您可以 groupby.applylambda 或创建一个函数和 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'])))
    

    【讨论】:

      猜你喜欢
      • 2020-11-05
      • 2021-11-01
      • 2019-10-12
      • 2021-07-22
      • 2019-01-10
      • 2020-05-20
      • 2016-01-02
      • 2013-01-31
      • 1970-01-01
      相关资源
      最近更新 更多