力扣:175. 组合两个表(Python3)
题目:
表:
Person+-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar | +-------------+---------+ personId 是该表的主键(具有唯一值的列)。 该表包含一些人的 ID 和他们的姓和名的信息。表:
Address+-------------+---------+ | 列名 | 类型 | +-------------+---------+ | AddressId | int | | PersonId | int | | City | varchar | | State | varchar | +-------------+---------+ addressId 是该表的主键(具有唯一值的列)。 该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。编写解决方案,报告
Person表中每个人的姓、名、城市和州。如果personId的地址不在Address表中,则报告为null。以 任意顺序 返回结果表。
结果格式如下所示。
来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
示例:
示例 1:
输入:
Person表: +----------+----------+-----------+ | personId | lastName | firstName | +----------+----------+-----------+ | 1 | Wang | Allen | | 2 | Alice | Bob | +----------+----------+-----------+ Address表: +-----------+----------+---------------+------------+ | addressId | personId | city | state | +-----------+----------+---------------+------------+ | 1 | 2 | New York City | New York | | 2 | 3 | Leetcode | California | +-----------+----------+---------------+------------+输出:
+-----------+----------+---------------+----------+ | firstName | lastName | city | state | +-----------+----------+---------------+----------+ | Allen | Wang | Null | Null | | Bob | Alice | New York City | New York | +-----------+----------+---------------+----------+
解释:地址表中没有 personId = 1 的地址,所以它们的城市和州返回 null。 addressId = 1 包含了 personId = 2 的地址信息。
解法:
先根据personId将person表和address表左外连接,接着提取只需要的列。
知识点:
1.pandas.merge(left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=True, indicator=False, validate=None):实现表连接。left:左表表名;right:右表表名;how:连接方式,有inner,left,right,outer,cross,对应sql中的各个连接方式,默认值为inner;on, left_on, right_on, left_index, right_index:表示两张表需要根据什么值连接就可以写在这边。若两边相连的值具有相同的列名就直接用on,若是列名不同则分别用left_on和right_on分别指定列名,若是需要根据index相连,则通过left_index或者right_index=True指定;sort: 按字典顺序通过连接键对结果DataFrame进行排序,默认为True,设置为False将在很多情况下显着提高性能;suffixes:若是两张表中都有相同列名的字段,他默认是给你用column_x,column_y的方式给你区分开,可以自己定义列名;copy: 始终从传递的DataFrame对象复制数据(默认为True),即使不需要重建索引也是如此;indicator:默认False,若是True,则会添加一列"_merge",这一列会标注合并键数据的存在是因为存在在左表(left_only),存在在右表(right_only)还是这个数据两个表都有(both);validate:可以验证合并是否为指定类型:有one_to_one(1:1), one_to_many(1:m), many_to_one(m:1), many_to_many(m:m),若是数据和选择的指定类型不符合,会直接报错。比如:
data = [[1, 'Wang', 'Allen'], [2, 'Alice', 'Bob']] person = pd.DataFrame(data, columns=['personId', 'firstName', 'lastName']).astype({'personId': 'Int64', 'firstName': 'object', 'lastName': 'object'}) data = [[1, 2, 'New York City', 'New York'], [2, 3, 'Leetcode', 'California']] address = pd.DataFrame(data, columns=['addressId', 'personId', 'city', 'state']).astype({'addressId': 'Int64', 'personId': 'Int64', 'city': 'object', 'state': 'object'})pd.merge(person, address, how='left', on='personId')左表中所有的数据都会显示:
2.删除pd的列:del dataframe[‘column_name’]。
3.左外连接:显示左边的表的所有数据(不管两表是否匹配),对于不匹配的部分都用NULL显示。
代码:
import pandas as pddef combine_two_tables(person: pd.DataFrame, address: pd.DataFrame) -> pd.DataFrame:m = pd.merge(person, address, how='left', on='personId')del m['addressId']del m['personId']return m
相关文章:
力扣:175. 组合两个表(Python3)
题目: 表: Person ---------------------- | 列名 | 类型 | ---------------------- | PersonId | int | | FirstName | varchar | | LastName | varchar | ---------------------- personId 是该表的主键(具有唯一值的列&#…...
【libGDX】使用Mesh绘制矩形
1 前言 使用Mesh绘制三角形 中介绍了绘制三角形的方法,本文将介绍绘制正方形的方法。 libGDX 以点、线段、三角形为图元,没有提供绘制矩形内部的接口。要绘制矩形内部,必须通过三角形拼接而成,如下图,是通过GL_TRIANGL…...
X2Keyarch迁移工具实战 | 将CentOS高效迁移至浪潮云峦操作系统KeyarchOS
X2Keyarch迁移工具实战 | 将CentOS高效迁移至浪潮云峦操作系统KeyarchOS 1. 搭建仿真线上业务环境2. 安装KeyarchOS操作系统和X2Keyarch迁移工具3. 将CentOS系统业务迁移至KeyarchOS系统 浪潮信息云峦操作系统KeyarchOS基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服…...
基于VM虚拟机下Ubuntu18.04系统,Hadoop的安装与详细配置
参考博客: https://blog.csdn.net/duchenlong/article/details/114597944 与上面这个博客几乎差不多,就是java环境配置以及后面的hadoop的hdfs-site.xml文件有一些不同的地方。 准备工作 1.更新 # 更新 sudo apt update sudo apt upgrade2.关闭防火…...
【图像分类】基于深度学习的垃圾分类系统的设计与实现(ResNet网络,附代码和数据集)
写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。(专栏订阅用户订阅专栏后免费提供数据集和源码一份,超级VIP用户不在服务范围之内,不想订阅专栏的兄弟们可以私信…...
MFS分布式文件系统
目录 集群部署 Master Servers Chunkservers 编辑Clients Storage Classes LABEL mfs高可用 pacemaker高可用 编辑ISCSI 添加集群资源 主机 ip 角色 server1 192.168.81.11 Master Servers server2 192.168.81.12 Chunkservers server3 192.168.81.13 Chunkserver…...
Hadoop -hdfs的读写请求
1、HDFS写数据(宏观): 1、首先,客户端发送一个写数据的请求,通过rpc与NN建立连接,NN会做一些简单的校验,文件是否存在,是否有空间存储数据等。 2、NN就会将校验的结果发送给客户端…...
【c++Leetcode】206. Reverse Linked List
问题入口 time complexity: O(n), space complexity:O(1) ListNode* reverseList(ListNode* head) {ListNode* prev nullptr;ListNode* curr head;while(curr){ListNode* forward curr->next;curr->next prev;prev curr;curr forward;}return prev; } time comp…...
[项目管理-33/创业之路-87/管理者与领导者-127]:如何提升自己项目管理的能力和水平
目录 前言: 一、项目经理的角色定位 1.1 项目经理的职责 1.2 不同矩阵类型的项目,项目经理的职责 1.3 项目经理的角色定位 1.4 项目经理的发展路径 二、项目经理项目理论和知识结构 三、软件项目经理在计算机水平的提升 四、项目经理业务知识的…...
记录一次因内存不足而导致hiveserver2和namenode进程宕机的排查
背景 最近发现集群主节点总有进程宕机,定位了大半天才找到原因,分享一下 排查过程 查询hiveserver2和namenode日志,都是正常的,突然日志就不记录了,直到我重启之后又恢复工作了。 排查各种日志都是正常的࿰…...
c# 基础语法
c# 程序结构 using System.Collections.Generic; namespace demo1; //一个命名空间可以包含多个类 using System.IO; using System.Drawing;class proj {/// <summary>/// c#是微软开发的,基于c和c的一种面象对象编程语言,用于快速开发windows桌…...
【译】什么时候使用 Spring 6 JdbcClient
原文地址:Spring 6 JdbcClient: When and How to Use it? 一、前言 自 Spring 6.1 起,JdbcClient 为 JDBC 查询和更新操作提供了统一的客户端 API,从而提供了更流畅、更简化的交互模型。本教程演示了如何在各种场景中使用 JdbcClient。 二…...
VR全景:赋能城市园区建设,打造3DVR城市名片
近年来,很多城市都在大力发展数字化经济建设,以VR全景技术赋能现代化城市和园区建设,为城市园区展示带来了全新的可能性。借助3D、VR技术把现实城市和园区搬到互联网上进行全方位展示,将城市园区的形象、景观、规划布局等1&#x…...
孟德尔随机化写作技巧mr
...
社会媒体营销提问常用的ChatGPT通用提示词模板
如何制定有效的社会媒体营销策略? 如何选择适合的社会媒体平台进行营销? 如何创造有吸引力的社会媒体内容,提高用户参与度和分享率? 如何运用社交媒体广告来增加品牌曝光和用户转化? 如何建立和维护社交媒体账号和…...
智慧储能边缘计算网关应用,提升能源效率
智慧储能通过边缘计算网关物联网技术来实现对储能电池等设备的在线监控和远程管理。边缘计算网关可以将储能数据转化为可用的信息,并传输到储能系统中,为储能管理提供优化与调度等数据支持。 边缘计算网关在智慧储能系统中起到了关键的作用。IR4000边缘计…...
利用 Apache Ranger 管理 Amazon EMR 中的数据权限
需求背景简介 系统安全通常包括两个核心主题:身份验证和授权。一个解决“用户是谁”的问题,另一个解决“用户允许执行什么操作”的问题。在大数据领域,Apache Ranger 是最受欢迎的授权选择之一,它支持所有主流大数据组件ÿ…...
HarmonyOS(三)—— 应用程序入口—UIAbility
前言 学习过android的同学都是知道Activity,Activity是Android组件中最基本也是最为常见用的四大组件之一,用户可以用来交互为了完成某项任务。 Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setCon…...
Vuetify:定制化、响应式的 Vue UI 库 | 开源日报 No.83
vuetifyjs/vuetify Stars: 38.1k License: MIT Vuetify 是一个无需设计技能的 UI 库,具有精美手工制作的 Vue 组件。它具有以下核心优势和主要功能: 可定制性:使用 SASS/SCSS 进行广泛自定义,并提供默认配置和蓝图。响应式布局&…...
使用PySpark 结合Apache SystemDS 进行信号处理分析 (离散傅立叶变换)的简单例子
文章大纲 简介 :什么是 SystemDS ?环境搭建与数据 准备数据预处理模型训练 与 结果评估参考文献简介 :什么是 SystemDS ? SystemDS is an open source ML system for the end-to-end data science lifecycle from data integration, cleaning, and feature engineering, ov…...
S32K3 Flash模拟EEPROM实战:深入拆解FEE模块的Cluster、Block与Swap机制
S32K3 Flash模拟EEPROM实战:深入拆解FEE模块的Cluster、Block与Swap机制 在嵌入式系统中,Flash存储器扮演着至关重要的角色,而如何高效、可靠地利用Flash模拟EEPROM功能,则是许多嵌入式开发者面临的挑战。特别是在汽车电子领域&a…...
专业级SOCD按键重映射工具Hitboxer:解决游戏输入冲突的终极方案
专业级SOCD按键重映射工具Hitboxer:解决游戏输入冲突的终极方案 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏和硬核平台跳跃游戏中,你是否经常因为同时按下相反方向键而导致…...
从Pangu到PolarDB:阿里云XRDMA通信库如何搞定大规模存储系统的RDMA难题?
阿里云XRDMA通信库:破解大规模存储系统RDMA落地难题的工程实践 在分布式存储与数据库领域,网络通信性能始终是决定系统上限的关键因素。当传统TCP协议栈的延迟和吞吐成为瓶颈时,RDMA技术凭借其绕过内核、零拷贝的特性,自然成为高性…...
PHP Swoole对接大模型长连接的7个致命陷阱:90%团队在第3步就崩溃了!
更多请点击: https://intelliparadigm.com 第一章:PHP Swoole对接大模型长连接的现状与挑战 当前,PHP 生态在高并发 AI 服务接入场景中正经历关键转型。Swoole 作为 PHP 原生协程化扩展,凭借其异步 I/O 和长连接能力,…...
传承与奉献:资深技术人如何做好“传帮带”?
传承与奉献:资深技术人如何做好“传帮带”在软件测试行业,技术的迭代速度如同奔涌的江河,新工具、新框架、新方法论层出不穷。而支撑行业持续向前的,除了前沿技术的突破,更离不开资深技术人对经验的传承与奉献。“传帮…...
RE-DTER最新创新改进系列:用经典融合合混合注意力机制CBAM,通道注意力和空间注意力相结合,助力redter新模型快速涨点!
RE-DTER最新创新改进系列:用经典融合合混合注意力机制CBAM,通道注意力和空间注意力相结合,助力redter新模型快速涨点! 购买相关资料后畅享一对一答疑! 畅享超多免费持续更新且可大幅度提升文章档次的纯干货工具&…...
你知道吗?其实这些都是AI——物流优化系统
物流优化系统 背景介绍 在全球化经济和电子商务快速发展的背景下,物流成为了商业运作的重要环节。高效的物流系统不仅能够降低企业成本,还能提高客户满意度。然而,传统的物流管理方式通常依赖于人工调度和经验决策,难以应对复杂多变的物流需求和庞大的数据处理量。现代科…...
超越COCO:手把手教你用Detic(21K类别)和ONNX Runtime打造通用物体识别Demo
通用物体识别新纪元:Detic与ONNX Runtime在C#中的实战应用 1. 从COCO到ImageNet-21K:物体检测的范式转移 传统物体检测模型如COCO(80类)和VOC(20类)已无法满足现代应用需求。Detic(Detecting Tw…...
xbatis:强大 ORM 框架,多版本更新亮点多,多种查询写法超方便!
推荐理由xbatis 强大之处显著,单表、连表操作均可,能让开发者少写 1/3 甚至 2/3 的持久层代码。其 API 简单、快捷、优雅、简洁,构建 SQL 能力强。即便有了 AI,好用的 ORM 仍不可忽视,除非后续不维护。各版本更新内容1…...
从蓝帽杯Misc赛题复盘,聊聊CTF比赛中那些“藏在流量里”的密码与哈希
流量中的密码艺术:CTF比赛中网络取证的核心技术与实战解析 在网络安全竞赛的战场上,流量分析始终是取证环节的"必考题"。当一道Misc题目摆在你面前,那些看似杂乱无章的TCP/UDP数据流中,往往隐藏着解题的关键线索——可能…...
