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')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值