Python pandas concat 连接 参数 详解 用法 数据拼接 数据堆叠



在这里插入图片描述

pd.concat 数据拼接、绑定或堆叠。



一、参数详解

join_axes已弃用,如果需要使用此功能,建议用 merge

在这里插入图片描述

在这里插入图片描述



二、实例代码

1. 简单拼接。

1.1 初始化数据及运行结果。
  1. concat 默认是 axis=0 方向连接的。(竖向 / 上下 拼接)。
pd.concat([df1,df2,df3],axis=1) # 横向 / 左右拼接
  1. join 用来指定拼接的方式,可选 inner 和 outer (类似于 merge 的 how 参数)

inner 取交集,舍弃部分,只拼接都存在的列(或者行),数据量可能变小。
outer 取并集。

pd.concat([df1,df2,df3],join='inner') 

在这里插入图片描述

1.2 代码。
import pandas as pd
import numpy as np

df1 = pd.DataFrame({
    
    
    'key':['a','b'],
    'data':[1,2]
})
df2 = pd.DataFrame({
    
    
    'key':['c','d'],
    'data':[3,4]
})
df3 = pd.DataFrame({
    
    
    'key':['e','f','g'],
    'data':[5,6,7]
})

pd.concat([df1,df2,df3])


2. 简单拼接。

2.1 初始化数据及运行结果。
  1. concat 可以用 keys 来标明数据的来源。
  2. 也可以用字典形式。如图注释部分。
  3. 如图,此时我们的索引是 0 1 0 1 2 。我们可以用 ignore_index = True 重新排序。索引就会变为 0 1 2 3 4
pd.concat([df1,df2], keys=['one_data','two_data'],ignore_index = True)

在这里插入图片描述

2.2 代码。
  1. 小tip:可以用list('abcdefg')直接产生一个对应的数组。
import pandas as pd
import numpy as np

df1 = pd.DataFrame({
    
    
    'key':['a','b'],
    'data':[1,2]
})
df2 = pd.DataFrame({
    
    
    'key':list('ace'),
    'data':[3,4,5]
})

pd.concat([df1,df2], keys=['one_data','two_data'])
# pd.concat({
    
    
#     'one_data':df1,
#     'two_data':df2
# },axis=1)

ignore_index 忽视原来的索引

pd.concat(dfl, ignore_index=True)

读取文件夹下所有文件

import pandas as pd
import glob

files = list(glob.glob('./data/C3.6 数据的拼接与合并/*'))

dfl = []
for f in files:
    df = pd.read_csv(f)
    dfl.append(df)

pd.concat(dfl, join='inner')

猜你喜欢

转载自blog.csdn.net/qq_35240689/article/details/125435164
今日推荐