表: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 进行聚合操作,以及按列和按行进行聚合操作,并打印了结果。