Pandas中concat的用法

2023-12-29 21:47:17

Pandas中concat的用法

? pd.concat 是 pandas 库中的一个函数,用于将多个 pandas 对象(如 Series、DataFrame)沿指定轴进行合并连接。

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

参数说明:

  • objs: 要合并的 pandas 对象,可以是一个列表、元组或字典。
  • axis (可选): 指定合并连接的轴,0 表示沿着行方向合并,1 表示沿着列方向合并。
  • join (可选): 指定合并连接的方式,‘outer’ 表示并集,‘inner’ 表示交集。
  • 其他参数:例如 ignore_indexkeysverify_integrity 等参数用于控制合并连接的方式和结果。

? 假如我有两个dataframe类型,需要将其变为一个,我们如何实现呢?

import pandas as pd

# 合并连接两个 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
print(df1)
print("-----------------------------")
print(df2)

在这里插入图片描述

垂直拼接:
result0 = pd.concat([df1, df2]) # 默认是axis=0 按照行进行拼接
print(result0)

我们发现这样还是存在有一些问题的,他的索引是乱序的,就是直接将两个dataframe类型拼接起来的,如下。

在这里插入图片描述

方法一:

可以使用ignore_index参数来忽略原始的索引,实现拼接的效果。

# # 忽略原始索引,重新生成索引 (相当于对使用reset_index)
result3 = pd.concat([df1, df2], ignore_index=True)
print(result3)

在这里插入图片描述

方法二:

使用reset_index对索引列进行重置。

# 重新索引排序 同时删除旧索引
result5= pd.concat([df1, df2],axis=0).reset_index(drop=True 不然会出现两个索引 ) # 必须要加上drop=True 不然会出现两个索引 
print(result5)

效果如下:

在这里插入图片描述

水平拼接:
# 沿着列方向合并连接两个 DataFrame
result1 = pd.concat([df1, df2], axis=1)
print(result1)

在这里插入图片描述

我们会发现,当axis=1的时候,是按照列进行拼接的,连接条件是有共同的索引。

# 创建两个具有不重叠列的 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})
# 使用 join='inner' 进行合并连接
result_inner = pd.concat([df1, df2], join='inner', axis=1)
print("\nInner Join:")
print(result_inner)

在这里插入图片描述

总结:

? 当涉及到合并连接多个 DataFrame 对象时,concat 函数是一个非常有用的工具。以下是对 concat 函数的总结:

concat 函数主要用于以下场景:

  1. 合并多个 DataFrame:concat 函数可以将多个 DataFrame 对象连接在一起,形成一个新的 DataFrame。这对于合并来自不同源的数据或者将数据拆分为更小的块进行处理非常有用。
  2. 纵向拼接数据:通过设置 axis=0concat 函数可以将具有相同列的多个 DataFrame 对象按行方向(纵向)拼接起来。这样可以将数据堆叠在一起,增加行数。
  3. 横向拼接数据:通过设置 axis=1concat 函数可以将具有相同行索引的多个 DataFrame 对象按列方向(横向)拼接起来。这对于将数据水平扩展或将不同特征的数据合并到一起非常有用。
  4. 在特定轴上拼接数据:concat 函数可以根据指定的轴(axis)将数据进行拼接。默认情况下,它在轴 0 上进行拼接,即按行拼接。但您也可以通过设置 axis=1 在轴 1 上进行拼接,即按列拼接。

? 总之,concat 函数提供了一种简单而灵活的方式来合并连接多个 DataFrame 对象。无论是纵向还是横向拼接数据,concat 函数都能满足您的需求。它在数据处理和数据分析过程中非常有用。

? 如果您有任何其他问题,欢迎继续提问。

文章来源:https://blog.csdn.net/ak_bingbing/article/details/135298539
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。