首页 > 编程 > Python > 正文

python的concat等多种用法详解

2020-02-15 23:50:14
字体:
来源:转载
供稿:网友

本文为大家分享了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'))data1data2 = [  [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,joindata2.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']]# 在有些数据不存在的时候,会自动填充NANpd.concat([data1,data4]) # c:join:inner 交集,outer ,并集pd.concat([data1,data4],join='inner') # 在列名没有一个相同的时候会报错# data4.index = list('mnp')# pd.concat([data1,data4])

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表