每日一题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 pd

def 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 pd

df1 = 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  3
    1  2  4
df2 0  5  7
    1  6  8

官方文档

2024.5.13

相关推荐

  1. 每日10Pandas:重塑数据-联结

    2024-05-13 08:12:07       31 阅读
  2. LeetCode 每日 2023/12/4-2023/12/10

    2024-05-13 08:12:07       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 08:12:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 08:12:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 08:12:07       82 阅读
  4. Python语言-面向对象

    2024-05-13 08:12:07       91 阅读

热门阅读

  1. C#面:解释什么是WCF?目前最新的版本是多少

    2024-05-13 08:12:07       36 阅读
  2. ETL(抽取、转换、加载)

    2024-05-13 08:12:07       24 阅读
  3. Cpython 的使用

    2024-05-13 08:12:07       33 阅读
  4. Vue3实战笔记(06)--- Axios 基本用法

    2024-05-13 08:12:07       44 阅读
  5. iOS ------ MRC

    2024-05-13 08:12:07       30 阅读
  6. axios的安装和引入

    2024-05-13 08:12:07       29 阅读
  7. AI学习指南概率论篇-期望和方差

    2024-05-13 08:12:07       35 阅读
  8. MPLS技术基础

    2024-05-13 08:12:07       29 阅读
  9. Gone框架介绍16 - 自动生成Priest

    2024-05-13 08:12:07       31 阅读
  10. 39-1 Web应用防火墙 - WAF应用程序层绕过

    2024-05-13 08:12:07       28 阅读
  11. PHP笔记

    PHP笔记

    2024-05-13 08:12:07      33 阅读
  12. 什么事防抖和节流,有什么区别,如何实现

    2024-05-13 08:12:07       25 阅读