Pandas中DataFrame数据合并连接(concatmergejoin)之concat
Posted wqbin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas中DataFrame数据合并连接(concatmergejoin)之concat相关的知识,希望对你有一定的参考价值。
一、concat:沿着一条轴,将多个对象堆叠到一起
concat(objs, axis=0, join=‘outer‘, join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True):
objs:需要连接的对象集合,一般是列表或字典;
axis:连接轴向;
join:参数为‘outer’或‘inner’;
join_axes=[]:指定自定义的索引;
keys=[]:创建层次化索引;
ignore_index=True:重建索引
pd.concat()只是单纯的把两个表拼接在一起,参数axis是关键,它用于指定是行还是列,axis默认是0。
当axis=0时,pd.concat([obj1, obj2])的效果与obj1.append(obj2)是相同的;
当axis=1时,pd.concat([obj1, obj2], axis=1)的效果与pd.merge(obj1, obj2, left_index=True, right_index=True, how=‘outer‘)是相同的。merge方法的介绍请参看下文。
import pandas as pd import numpy as np random = np.random.RandomState(0) #随机数种子,相同种子下每次运行生成的随机数相同 df1=pd.DataFrame(random.randn(3,4),columns=[‘a‘,‘b‘,‘c‘,‘d‘]) df1
random = np.random.RandomState(0) df2=pd.DataFrame(random.randn(2,3),columns=[‘b‘,‘d‘,‘a‘],index=["a1","a2"]) df2
random = np.random.RandomState(1) df22=pd.DataFrame(random.randn(3,3),columns=[‘b‘,‘d‘,‘a‘],index=[‘1‘,"a1","a2"]) df22
当axis=0时
pd.concat([df1,df2],axis=0)
pd.concat([df1,df2],axis=0,join="outer")
df12=df1.append(df2)
df12
pd.concat([df1,df2],axis=0,join="inner")
当axis=1时
pd.concat([df1,df2],axis=1,join=‘inner‘)
pd.concat([df1,df1],axis=1,join=‘inner‘) #和outer一样
pd.concat([df1,df2],axis=1,join="outer")
pd.concat([df1,df22],axis=1,join="inner")
pd.concat([df1,df22],axis=1,join="outer")
pd.concat([df1,df1],axis=1,join="outer")
以上是关于Pandas中DataFrame数据合并连接(concatmergejoin)之concat的主要内容,如果未能解决你的问题,请参考以下文章
Pandas中DataFrame数据合并连接(concatmergejoin)之merge
基于多列值的具有重复键的两个大型 Pandas DataFrame 的条件合并/连接 - Python
pandas 学习 第10篇:DataFrame 数据处理(应用追加截断连接合并重复值重索引重命名重置索引设置轴索引选择和过滤)