本文为大家分享了python的concat等多种用法,供大家参考,具体内容如下
1、numpy中的concatenate()函数:
1
2
3
4
5
6
7
8
9
|
>>> 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# 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])
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qwertyuiop5rghar/article/details/84501120