每天的领导和合伙人简单

表:DailySales

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| date_id     | date    |
| make_name   | varchar |
| lead_id     | int     |
| partner_id  | int     |
+-------------+---------+
该表没有主键(具有唯一值的列)。它可能包含重复项。
该表包含日期、产品的名称,以及售给的领导和合伙人的编号。
名称只包含小写英文字母。

对于每一个 date_id 和 make_name,找出 不同 的 lead_id 以及 不同 的 partner_id 的数量。

按 任意顺序 返回结果表。

解题思路:

1.根据date_id 和 make_name进行分组

2.对组内的lead_id 以及 partner_id 进行去重计数

import pandas as pd

def daily_leads_and_partners(daily_sales: pd.DataFrame) -> pd.DataFrame:
    #daily_sales_group = daily_sales.groupby(['date_id', 'make_name']).nunique().reset_index()
    daily_sales_group = daily_sales.groupby(['date_id', 'make_name']).agg({'lead_id':'nunique', 'partner_id':'nunique'}).reset_index()
    daily_sales_group = daily_sales_group.rename(columns={'lead_id':'unique_leads', 'partner_id':'unique_partners'})
    #print(daily_sales_group)
    return daily_sales_group

注:

agg 是 pandas 库中的一个函数,用于对 DataFrame 或 Series 进行聚合操作。它可以应用于分组数据或整个数据集,并根据指定的聚合函数计算出结果。

agg 函数的基本语法如下:

result = df.agg(func, axis=0)

其中,df 是要进行聚合操作的 DataFrame;func 是一个聚合函数或函数列表,用于指定要应用的聚合操作;axis 是聚合的轴方向,可以是 0(按列进行聚合,默认值)或 1(按行进行聚合)。

以下是几种常见的 agg 使用场景:

1. 对整个 DataFrame 进行聚合:

result = df.agg(func)

上述代码将对整个 DataFrame df 应用指定的聚合函数,并计算出结果。

2. 按列或行进行聚合:

result = df.agg(func, axis=0) # 按列进行聚合

result = df.agg(func, axis=1) # 按行进行聚合

上述代码将根据指定的聚合函数,按照指定的轴方向对 DataFrame df 进行聚合操作。

3. 使用多个聚合函数进行聚合:

result = df.agg([func1, func2, ...])

上述代码将同时使用多个聚合函数对 DataFrame df 进行聚合操作,并生成包含每个函数计算结果的 DataFrame。

以下是一个简单示例,演示了如何使用 agg 函数对 DataFrame 进行聚合操作:

import pandas as pd

# 创建示例 DataFrame
data = {'A': [1, 2, 3, 4, 5],
        'B': [6, 7, 8, 9, 10],
        'C': [11, 12, 13, 14, 15]}

df = pd.DataFrame(data)

# 对整个 DataFrame 进行聚合操作
result = df.agg(['sum', 'mean'])
print(result)

# 按列进行聚合操作
result = df.agg(['sum', 'mean'], axis=0)
print(result)

# 按行进行聚合操作
result = df.agg(['sum', 'mean'], axis=1)
print(result)

 

输出结果如下

         A     B     C
sum   15.0  40.0  65.0
mean   3.0   8.0  13.0

        A     B     C
sum  15.0  40.0  65.0
mean  3.0   8.0  13.0

      sum  mean
0    18.0   6.0
1    21.0   7.0
2    24.0   8.0
3    27.0   9.0
4    30.0  10.0

上述代码中,我们首先创建了一个示例 DataFrame,并使用 agg 函数对整个 DataFrame 进行聚合操作,以及按列和按行进行聚合操作,并打印了结果。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值