解包一个键值可能是lis的字典

2024-09-30 14:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我不确定我是否以正确的方式问这个问题,但是我很难理解如何解包一个可能是列表类型的字典键值

我基本上想要实现的是在PySpark中有一个可以按数据帧分组的函数,但是聚合条件中可以有多个值

def readfilegrouped(**groupargs):
    """Group the dataframe based on the conditions"""

    dfgrouped = groupargs['groupingdf'].groupBy(groupargs['aggcol']).agg(groupargs['aggcond'])
    return dfgrouped  

在上面的函数中,我希望能够传递多个聚合条件。类似于下面提到的:

    groupargs = {'groupingdf':members, 'aggcol':"MEMBERID", 'aggcond':F.countDistinct(F.col("MEMBERID")).alias("DISTINCT_MEMBERID"), F.sum(F.col("TRANSACTIONS")).alias("TOTALTRANSACTIONS")}
    membersgrouped = readfilegrouped(**groupargs)  

成员表:

MEMBERID  TRANSACTIONS   DATE
 M1          2           01/01
 M1          3           01/02
 M2          5           02/01
 M3          1           01/01
 M3          2           01/02

我想要的结果是:

 MEMBERID  DISTINCT_MEMBERID  TOTALTRANSACTIONS
   M1          1               5

最接近的方法是使用defaultdict来实现它,但我不确定在调用函数时如何正确定义它。任何帮助都将不胜感激


Tags: the函数aliascol条件transactionsdistinctm1