python的concat用法_python的concat等多种用法详解

本文为大家分享了python的concat等多种用法,供大家参考,具体内容如下

1、numpy中的concatenate()函数:

>>> a = np.array([[1, 2], [3, 4]])

>>> b = np.array([[5, 6]])

>>> np.concatenate((a, b), axis=0)

array([[1, 2],

[3, 4],

[5, 6]])

>>> np.concatenate((a, b.T), axis=1)

array([[1, 2, 5],

[3, 4, 6]])

2、pandas中的merge,concat,join

# In[]:数据的合并

# 1 ,merge,类似数据库中的

# (1)内连接,pd.merge(a1, a2, on='key')

# (2)左连接,pd.merge(a1, a2, on='key', how='left')

# (3)右连接,pd.merge(a1, a2, on='key', how='right')

# (4)外连接, pd.merge(a1, a2, on='key', how='outer')

data1 = pd.DataFrame(

np.arange(0,16).reshape(4,4),

columns=list('abcd')

)

data1

data2 = [

[4,1,5,7],

[6,5,7,1],

[9,9,123,129],

[16,16,32,1]

]

data2 = pd.DataFrame(data2,columns = ['a','b','c','d'])

data2

# 内连接 ,交集

pd.merge(data1,data2,on=['b'])

# 左连接 注意:如果 on 有两个条件,on = ['a','b']

# how = 'left','right','outer'

pd.merge(data1,data2,on='b',how='left')

# 2,append,相当于R中的rbind

# ignore_index = True:这个时候 表示index重新记性排列,而且这种方法是复制一个样本

data1.append(data2,ignore_index = True)

# 3,join

data2.columns=list('pown')

# 列名不能重叠:在这里的用法和R中rbind很像,但是join的用法还是相对麻烦的

result = data1.join(data2)

result

# 4,concat 这个方法能够实现上面所有的方法的效果

# concat函数是pandas底下的方法,可以把数据根据不同的轴进行简单的融合

# pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,

# keys=None, levels=None, names=None, verify_integrity=False)

# 参数说明:

# objs:series,dataframe,或者panel构成的序列list

# axis:0 行,1列

# join:inner,outer

# a,相同字段表首尾巴相接

data1.columns = list('abcd')

data2.columns =list('abcd')

data3 = data2

# 为了更好的查看连接后的数据来源,添加一个keys更好查看

pd.concat([data1,data2,data3],keys=['data1','data2','data3'])

# b ,列合并(也就是行对齐):axis = 1,

pd.concat([data1,data2,data3],axis = 1,keys = ['data1','data2','data3'])

data4 = data3[['a','b','c']]

# 在有些数据不存在的时候,会自动填充NAN

pd.concat([data1,data4])

# c:join:inner 交集,outer ,并集

pd.concat([data1,data4],join='inner')

# 在列名没有一个相同的时候会报错

# data4.index = list('mnp')

# pd.concat([data1,data4])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持dt猫。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值