每日一题10:Pandas:重塑数据-联结

一、每日一题

DataFrame 
df
+-------------+--------+
| Column Name | Type   |
+-------------+--------+
| student_id  | int    |
| name        | object |
| age         | int    |
+-------------+--------+DataFrame 
df
+-------------+--------+
| Column Name | Type   |
+-------------+--------+
| student_id  | int    |
| name        | object |
| age         | int    |
+-------------+--------+

编写一个解决方案,将两个 DataFrames 垂直 连接成一个 DataFrame。

结果格式如下示例所示。

示例 1:

输入:
df1
+------------+---------+-----+
| student_id | name    | age |
+------------+---------+-----+
| 1          | Mason   | 8   |
| 2          | Ava     | 6   |
| 3          | Taylor  | 15  |
| 4          | Georgia | 17  |
+------------+---------+-----+
df2
+------------+------+-----+
| student_id | name | age |
+------------+------+-----+
| 5          | Leo  | 7   |
| 6          | Alex | 7   |
+------------+------+-----+
输出:
+------------+---------+-----+
| student_id | name    | age |
+------------+---------+-----+
| 1          | Mason   | 8   |
| 2          | Ava     | 6   |
| 3          | Taylor  | 15  |
| 4          | Georgia | 17  |
| 5          | Leo     | 7   |
| 6          | Alex    | 7   |
+------------+---------+-----+

解答:

import pandas as pddef concatenateTables(df1: pd.DataFrame, df2: pd.DataFrame) -> pd.DataFrame:result_df = pd.concat([df1, df2], ignore_index=True)return result_df

题源:力扣

 二、总结 

concat() 是 Pandas 中一个非常强大的函数,用于沿着一个轴(行或列)组合多个对象(主要是 DataFrame 和 Series)。下面是 concat() 函数的基本用法、参数和一些示例。

基本语法

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,keys=None, levels=None, names=None, verify_integrity=False,sort=None, copy=True)

参数说明

  • objs: 必需参数,一个列表或元组,包含了要组合的DataFrame或Series对象。

  • axis: 指定连接的轴,可以是 0(默认值,垂直连接,行方向)或 1(水平连接,列方向)。

  • join: 指定如何处理其他轴上的索引,可以是 'inner'(交集)或 'outer'(并集,默认值)。

  • ignore_index: 布尔值,默认为 False。如果设置为 True,则在连接后重置索引。

  • keys: 一个可选的序列,用于构建分层索引或多级列名。

  • levels: 与 keys 配合使用,手动指定分层索引的级别。

  • names: 为结果的轴上的分层索引设置名称。

  • verify_integrity: 检查新轴是否包含重复项,True 表示检查,默认为 False

  • sort: 在连接多索引时控制排序行为,None(默认)表示不排序,保留输入顺序;True 表示按索引排序。

  • copy: 默认为 True,总是创建数据的副本。如果设置为 False,可能会重用输入数据,具体取决于所使用的数据和操作。

示例

1. 垂直连接(行方向)

import pandas as pddf1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})# 垂直堆叠两个DataFrame
result = pd.concat([df1, df2])
print(result)
   A  B
0  1  3
1  2  4
0  5  7
1  6  8

 2.水平连接(列方向)

df3 = pd.DataFrame({'C': [9, 10]}, index=[0, 1])# 水平堆叠,注意调整axis参数
result = pd.concat([df1, df3], axis=1)
print(result)
   A  B   C
0  1  3   9
1  2  4  10

3.使用keys创建层次化索引

result_with_keys = pd.concat([df1, df2], keys=['df1', 'df2'])
print(result_with_keys)
       A  B
df1 0  1  31  2  4
df2 0  5  71  6  8

官方文档

2024.5.13

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/11188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cpython 的使用

前言 Python 程序中一些关键代码不想公开,可以使用 Cpython 来编译,然后正常导入 开始 需要明确一点,CPython 是 Python 的默认和最常用的解释器实现,而 .pyd 文件是一种特定于 Windows 的 Python 动态链接库(DLL&a…

Spring Event--踩坑(注意事项)

原文网址:Spring Event--踩坑(注意事项)-CSDN博客 简介 本文介绍Spring的事件的使用注意事项。 Spring Event框架实现了基于事件的发布订阅机制。开发者可以自定义事件,发布事件,Spring 会将该事件广播给监听该事件的监听者。监听者可以实…

linux学习:视频输入+V4L2

目录 V4L2 视频采集流程 代码例子 核心命令字和结构体 VIDIOC_ENUM_FMT VIDIOC_G_FMT / VIDIOC_S_FMT / VIDIOC_TRY_FM VIDIOC_REQBUFS VIDIOC_QUERYBUF VIDIOC_QBUF /VIDIOC_DQBUF VIDIOC_STREAMON / VIDIOC_STREAMOFF V4L2 是 Linux 处理视频的最新标准代码模块&…

Java后端实现对象与文件接收数据(minio测试)

实现思路: 1. 两个接口实现,一个接对象数据(file),一个接文件数据(json)。 2. json对象(base64String) 实体类信息 ,请求体统一接收 3. file, String name ,String password ,String name , Controller层接收 统一…

如何查看PostgreSQL的版本

如何查看PostgreSQL的版本 要查看 PostgreSQL 的版本,有几种不同的方法可以使用,包括通过命令行和 SQL 查询。 1. 使用命令行 如果你有访问到服务器的命令行,并且 PostgreSQL 的命令行工具已经添加到了系统的 PATH 中,你可以非…

[muduo网络库]——muduo库noncopyable(剖析muduo网络库核心部分、设计思想)

接着之前我们[muduo网络库]——muduo库TcpConnection类(剖析muduo网络库核心部分、设计思想),我们接下来继续看muduo库中的noncopyable。 这一类比较简单,并且我在另一篇博客里面,也有详细的介绍C 11以及muduo网络库中…

函数指针允许将函数作为参数传递或从函数返回函数

函数指针允许您将函数作为参数传递或从函数返回函数,从而实现灵活的行为和代码重用。它们在 C 编程中具有广泛的应用,包括回调、事件处理和算法选择。了解函数指针及其用法可以帮助您编写更模块化、可扩展和可定制的代码。以下是函数指针的一些实际应用示…

OpenHarmony 实战开发——如何编译OpenHarmony自带APP

概述 OpenHarmony 的主干代码是开源社区的重要学习资源,对于想进行应用开发和熟悉 OpenHarmony 能力的同学主干代码是非常重要的资源,在主干代码的 applications 目录里聚集了很多原生的应用实现,那么如何编译这些代码就是我们这篇文章的主要…

信息系统架构设计方法_1.ADM架构开发方法

1.TOGAF概述 TOGAF(The Open Group Architecture Framework,TOGAF)是一种开放式企业架构框架标准,它为标准、方法论和企业架构专业人员之间的沟通提供一致性保障。 TOGAF由国际标准权威组织The Open Group制定。The Open Group于1…

[初学rust] 01_简单打印

print println!() 基本使用 直接输出一个字符串 println!("hello world");{} 占位符 println!("{}", "hello world");

Vue3项目打包部署到云服务器的Nginx中

文章目录 一、打包vue3项目二、dist文件夹上传到服务器三、改nginx配置文件Docker安装nginx 一、打包vue3项目 npm run build 二、dist文件夹上传到服务器 将dist文件夹放到docker安装的nginx中的html目录下 三、改nginx配置文件 然后重启nginx【改了配置文件重启nginx才能…

消息中间件Kafka(PHP版本)

小编最近需要用到消息中间件,有需要要复习一下以前的东西,有需要的自取,强调一点,如果真的想了解透彻,一定要动手,脑袋会了不代表就会写了 Kafka是由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅…

等保一体机能过三级等保吗?过等保无需再买安全设备如何做到?

等保一体机能过三级等保吗?过等保无需再买安全设备如何做到? 全云在线 2024-03-28 12:08 广东 尽管等保建设的标准是统一的,但由于不同行业和用户规模的差异,建设方案呈现出多样化的特点。 虽然重点行业过等保现象确实已经十分…

免费思维13招之八:跨行业思维

免费思维13招之八:跨行业思维 免费思维的另一大战略思维——跨行业型思维。 跨行业型思维有两种:一种是通过跨行业,把自己的产品免费掉,从而赚取其他行业的利润。另一种是通过跨行业,把别人的主流产品免费掉,从而增大自己产品的销量。 第一种,把自己的产品免费,从而赚…

Hadoop3.4.0 完全分布式集群 运行环境搭建 VMware Workstation 虚拟机 大数据系列 一

一 生产环境集群模式部署,需要多台主机,主机之间通过密钥相互访问. 1 配置如图 节点名字节点IP系统版本master11192.168.50.11centos 8.5slave12192.168.50.12centos 8.5slave13192.168.50.13centos 8.5 2 安装服务器 #先安装一台master11&#xff…

C++ 容器(四)——List操作

一、List定义 内部核心是双向链表结构: 1、list内部以双向链表形式存储元素,每个节点包含指向前一个节点和后一个节点的指针。 2、动态大小:list的大小可以根据需要动态增长或缩小,不需要预先指定容器的大小。 3、插入和删除效…

Kubernetes 监控管理

目录 1. Metrics Server2. Prometheus & Grafana3. cAdvisor4. 日志收集5. 告警与通知6. 最佳实践 Kubernetes 监控管理是确保集群稳定运行和应用服务质量的关键环节。它涉及收集、聚合、分析集群及其上运行的应用程序的各种指标和日志数据。 1. Metrics Server 作用&…

Kubernetes备份恢复

目录 1. etcd 备份与恢复2. Velero3. Kubernetes Checkpoint API4.最佳实践 在Kubernetes中,备份和恢复策略是确保集群和应用程序数据安全的关键部分。这包括了对集群元数据(如部署、服务、PV/PVC定义等)以及持久卷中的数据进行备份。 1. et…

Hadoop-未授权访问-内置配合命令执行RCE

一、Hadoop常见端口及配置文件 Hadoop中有多种端口,这些端口用于不同的服务和通信。以下是Hadoop中常见的端口以及它们的用途: NameNode Web界面端口 (默认: 9870)NameNode 对客户端服务端口 (默认: 8020)Secondary NameNode Web界面端口 (默认: 9868)…

图层的遮盖判定算法实现1

图层的判定算法实现1 1. 算法思路2. 增加图层类属性3. 修改图层工具类4. 置于灰色5. 调用比较置灰 图层的判定算法实现1 学习于bilibili 尚学堂官方 1. 算法思路 与它上方的那一层所有牌进行比较,是否有交集 有,则盖住了,显示灰色 没有&am…