如何用Python的pandas库函数将相同结构的两张表连接为一张表

本文介绍如何使用Python的pandas库通过pd.concat()函数将具有相同结构的两个DataFrame垂直连接。详细解释了pd.concat()的参数用法,并提供了具体的代码示例和执行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

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

DataFrame df2
+-------------+--------+
| 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   |
+------------+---------+-----+
解释:
两个 DataFrame 被垂直堆叠,它们的行被合并。

解题方案

1、审题,理解题意

题目的意思是有两个DataFrame,且有相同的列结构 student_id,name 和 age。想要垂直地连接两个 DataFrame,df1 和 df2。可以使用pandas 内部的一个方便的函数pd.concat()垂直(按行)或水平(按列)连接 DataFrame。

pd.concat()函数参数
  • objs 参数是一个要串联的 Series 或 DataFrame 对象的序列或映射。
  • axis 参数决定连接的方向:
    axis=0 设置为缺省值,这意味着它将垂直(按行)连接 DataFrame。
    axis=1 将水平连接 DataFrame(按列)。

2、解题思路

对于该题目我们用pd.concat()函数垂直连接 DataFrame,需要确保列的顺序一致。

return pd.concat([df1, df2], axis=0)
  • 我们利用 pd.concat() 函数来连接 DataFrames。因为我们连接了 df1 和 df2,所以我们传递列表 [df1,df2] 作为 objs 的第一个参数;
  • 由于我们垂直连接,所以我们设置 axis=0。

3、代码实现

import pandas as pd

def concatenateTables(df1: pd.DataFrame, df2: pd.DataFrame) -> pd.DataFrame:
    return pd.concat([df1, df2], axis=0)

4、执行结果

image-20231025111256972

n pd.concat([df1, df2], axis=0)




### 4、执行结果

[外链图片转存中...(img-9mhcGdAi-1698210284335)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧阳敏敏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值