首页 > 其他分享 >183. 从不订购的客户

183. 从不订购的客户

时间:2023-08-12 21:14:40浏览次数:40  
标签:customers 从不 订购 Customers customerId 183 pd id 该表

183. 从不订购的客户

2023年8月12日20:15:58

183. 从不订购的客户

简单

SQL Schema


Pandas Schema


Customers 表:

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
+-------------+---------+
在 SQL 中,id 是该表的主键。
该表的每一行都表示客户的 ID 和名称。

Orders 表:

+-------------+------+
| Column Name | Type |
+-------------+------+
| id          | int  |
| customerId  | int  |
+-------------+------+
在 SQL 中,id 是该表的主键。
customerId 是 Customers 表中 ID 的外键( Pandas 中的连接键)。
该表的每一行都表示订单的 ID 和订购该订单的客户的 ID。

找出所有从不点任何东西的顾客。

任意顺序 返回结果表。

结果格式如下所示。

示例 1:

输入:
Customers table:
+----+-------+
| id | name  |
+----+-------+
| 1  | Joe   |
| 2  | Henry |
| 3  | Sam   |
| 4  | Max   |
+----+-------+
Orders table:
+----+------------+
| id | customerId |
+----+------------+
| 1  | 3          |
| 2  | 1          |
+----+------------+
输出:
+-----------+
| Customers |
+-----------+
| Henry     |
| Max       |
+-----------+

通过次数

345.7K

提交次数

521.9K

通过率

66.2%

答案

import pandas as pd

def find_customers(customers: pd.DataFrame, orders: pd.DataFrame) -> pd.DataFrame:
   return customers[~customers["id"].isin(orders["customerId"].values.tolist())].rename(columns={'name':'Customers'})[["Customers"]]




#  合并写法
    # customers = pd.merge(customers,orders,how='left', left_on='id',right_on='customerId').rename(columns={'name':'Customers'})
    # return customers[['Customers']][customers["customerId"].isnull()]

标签:customers,从不,订购,Customers,customerId,183,pd,id,该表
From: https://www.cnblogs.com/lmq886/p/17625503.html

相关文章

  • 【题解】Educational Codeforces Round 148(CF1832)
    A.NewPalindrome题目描述:给你一个由小写字母组成的回文字符串,问你是否能在重排其之后构造出另一个与原串不同的回文字符串。多测,\(t\le1000,2\le|s|\le50\)题目分析:考虑其实就是前\(\lfloor\frac{n}{2}\rfloor\)个位置存在两种或以上的不同字符,因为这样直接交换对......
  • 一次失败的网购:在兰蔻官网订购的货不对版
    这是上个月的事情,说上当受骗有点过分,但是货不对版倒是恰如其分。我写在开心上群上,移到这里,因为开心的兰蔻群不值得信任,将其锁住了,不过也是正常的。我要承认,在群上写了之后,联系了我,看看如何解决问题,要我将小样寄回去(有些是套装的标明样品,我的理解不属于免费赠送),但是大概一个月时......
  • 从不订购的用户
    题目要求是找出所有从不点任何东西的顾客,可以用notin,我们先查找Customers表中的id,然后再用子查询查找Orders中customeId,如果前者没有在后者里面,那么就将它输出。还有一种wherenotexist后面也是跟子查询的,这个意思就是查询不符合子查询的数据,子查询中我们查询id和customerId相......
  • CF1835D Doctor's Brown Hypothesis
    由于\(k\)够大,你可以随便在图上走环,不用担心不用走,那么你所担心的只有环长的\(\rmgcd\)。将所有强连通分量先求出,满足条件的点对必然在一个强连通分量里。我们以随便一个点为根,跑出强连通分量中的一棵dfs树,我们断言,如果\(dep_x-dep_y\equivdep_y-dep_x\equivk\bmodd\)......
  • 不忘初心 Windows11 Insider Preview 25915.1000 Canary预览版 无更新 纯净精简 2023.
    此版不能更新补丁,并开启按流量计费,此版保留Hyper和linux,让人期待的任务栏图标从不合并功能此版已经回归,母版来自UUPWindows11InsiderPreview25915.1000Canary频道预览版,本版本自动跳过硬件检测,优化后台进程和服务,精简一些日常不常用的组件,速度和性能比原版更胜一筹,为了保证稳......
  • P1833 樱花 题解
    二进制拆分做法:把每一个物品根据2的多少次方拆分,因为任何数都可以转化为二进制数核心思想:把每一个物品拆成很多个,分别计算价值和所需时间,再转化为01背包求解最后一点:完全背包可以把他的空间记为999999,不要太大,一般百万就足够了还有一点:cin和scanf不可以混用代码#include<bit......
  • Codeforces 1830E - Bully Sort
    这种题肯定首先要寻找不变量。显然后面排好序的后缀不会被改变。因此从整体上来看我们的流程肯定是,如果当前\(p_n=n\),就令\(n\)减一,否则你一步换的\(i\)肯定满足\(p_i=n\)。而显然\(\min\limits_{j=i}^np_j\lei\),因此我们考察\(\sum|i-p_i|\)和\(\sum\limits_{i<j}[p_......
  • 题解 P4183 [USACO18JAN] Cow at Large P
    带有小trick的点分治。建议先做完弱化版再看。假如奶牛在\(u\),那么所需的最少农夫数为\(\sum\limits_{v\inson(u)}[dis(u,v)\geg_v][dis(u,fa_v)<g_{fa_v}]\)。其中\(dis(u,v)\)为\(u,v\)在树上的距离,\(g_u\)为\(u\)到离它最近的出入口的距离(BFS预处理),\(fa_u\)......
  • [刷题笔记] Luogu P3183 食物链
    ProblemDescription通俗一点就是在一张图上求入度为0的点到出度为0的点路径的个数。Solution简要题意后发现可以拓扑排序?这里主要介绍记忆化搜索。记忆化搜索是指记住当前节点的状态,待下次搜到这里直接调用即可,无需继续搜索。显然由记忆化搜索延伸到dp,但如果状态设计很复杂......
  • CF1834 题解
    CF1834题解A考虑答案与元素位置无关,只与\(1\)和\(-1\)的个数有关。要求\(1\)必须多于或等于\(-1\),并且\(-1\)个数为偶数。分讨:序列中\(num(1)\geqnum(-1)\),只需要看\(num(-1)\)正负性,奇数1步,偶数0步序列中\(num(1)<num(-1)\),先通过\(-1\)变\(1\)将数目补到第一种情况,再做......