每日一题38:数据分组之订单最多的客户

一、每日一题 

表: Orders

+-----------------+----------+
| Column Name     | Type     |
+-----------------+----------+
| order_number    | int      |
| customer_number | int      |
+-----------------+----------+
在 SQL 中,Order_number是该表的主键。
此表包含关于订单ID和客户ID的信息。

查找下了 最多订单 的客户的 customer_number 。

测试用例生成后, 恰好有一个客户 比任何其他客户下了更多的订单。

查询结果格式如下所示。

示例 1:

输入: 
Orders 表:
+--------------+-----------------+
| order_number | customer_number |
+--------------+-----------------+
| 1            | 1               |
| 2            | 2               |
| 3            | 3               |
| 4            | 3               |
+--------------+-----------------+
输出: 
+-----------------+
| customer_number |
+-----------------+
| 3               |
+-----------------+
解释: 
customer_number 为 '3' 的顾客有两个订单,比顾客 '1' 或者 '2' 都要多,因为他们只有一个订单。
所以结果是该顾客的 customer_number ,也就是 3 。
import pandas as pd

def largest_orders(orders: pd.DataFrame) -> pd.DataFrame:
    # 如果订单表为空,则返回一个包含'customer_number'列且没有行的空DataFrame
    if len(orders) == 0:
        return pd.DataFrame(None, columns=['customer_number'])
    
    # 对customer_number进行分组,并计算每个组的订单数量
    order_counts = orders.groupby('customer_number')['order_number'].count()
    
    # 找到订单数量最多的customer_number
    most_orders_customer_number = order_counts.idxmax()
    
    # 创建一个包含最多订单客户的customer_number的DataFrame
    result = pd.DataFrame({'customer_number': [most_orders_customer_number]})
    
    # 返回结果DataFrame
    return result

# 示例数据
data = [[1, 1], [2, 2], [3, 3], [4, 3]]
orders = pd.DataFrame(data, columns=['order_number', 'customer_number']).astype({'order_number': 'Int64', 'customer_number': 'Int64'})

# 调用函数并打印结果
result = largest_orders(orders)
print(result)

题源:Leetcode

二、总结

注意订单数为0的情况。

2024.6.10

相关推荐

  1. 每日38数据分组订单客户

    2024-06-10 20:22:04       9 阅读
  2. 每日36数据分组科目种类数量

    2024-06-10 20:22:04       8 阅读
  3. 【LeetCode】586. 订单客户

    2024-06-10 20:22:04       39 阅读
  4. 【力扣每日】力扣2397被列覆盖行数

    2024-06-10 20:22:04       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 20:22:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 20:22:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 20:22:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 20:22:04       18 阅读

热门阅读

  1. Ubuntu中安装MySQL root 密码修改

    2024-06-10 20:22:04       7 阅读
  2. 心灵清闲

    2024-06-10 20:22:04       10 阅读
  3. 深入解析分布式链路追踪:原理、技术及应用

    2024-06-10 20:22:04       11 阅读
  4. electron录制工具-desktopCapturer录屏

    2024-06-10 20:22:04       10 阅读
  5. multisim仿真电路图

    2024-06-10 20:22:04       11 阅读
  6. 公式面试题总结(三)

    2024-06-10 20:22:04       8 阅读
  7. 【设计模式】基本名词

    2024-06-10 20:22:04       11 阅读
  8. leetcode290:单词规律

    2024-06-10 20:22:04       13 阅读
  9. 回溯算法复原ip,子集1和子集2

    2024-06-10 20:22:04       9 阅读
  10. 43.django里写自定义的sql进行查询

    2024-06-10 20:22:04       7 阅读