python中数据的合并问题

一.数组类型的合并
numpy中合并用np.concatenate,注意其中的中括号

np.concatenate([arr1, arr2])

其中arr1,arr2为numpy.ndarray类型.
当不指定axis时,默认为0,为纵向合并。
当指定axis时,axis为1时,为横向合并

```
np.concatenate([arr1, arr2], axis=1)
```
ex:
    arr1 = [[8 9 7 9]
             [6 6 8 6]
             [9 5 1 8]]
    arr2 = [[4 1 0 4]
             [1 7 5 2]
             [6 4 5 1]]
```
np.concatenate([arr1, arr2])
``` 
为
array([[3, 9, 7, 6],
   [4, 6, 9, 9],
   [1, 8, 8, 5],
   [2, 7, 2, 8],
   [9, 8, 0, 6],
   [9, 1, 4, 8]])
 ```
np.concatenate([arr1, arr2], axis=1)
``` 
为array([[3, 9, 7, 6, 2, 7, 2, 8],
   [4, 6, 9, 9, 9, 8, 0, 6],
   [1, 8, 8, 5, 9, 1, 4, 8]])

二.Series的合并
Pandas中合并Series合并用pd.concat

    pd.concat([ser_obj1, ser_obj2, ser_obj3])

同样不指定axis为纵向合并,指定axis=1为横向合并
ex:

ser_obj1 = pd.Series(np.random.randint(0, 10, 5), index=range(5))
ser_obj2 = pd.Series(np.random.randint(0, 10, 4), index=range(4))
ser_obj3 = pd.Series(np.random.randint(0, 10, 3), index=range(3))

print ser_obj1
print ser_obj2
print ser_obj3

创建三个索引不重复的Series
结果为:

0    9
1    2
2    5
3    7
4    1
dtype: int32
0    4
1    9
2    9
3    3
dtype: int32
0    4
1    8
2    8
dtype: int32

进行合并

pd.concat([ser_obj1, ser_obj2, ser_obj3])

结果为:

0     2
1     5
2     9
3     1
4     6
5     1
6     8
7     1
8     6
9     8
10    5
11    0
dtype: int32

当指定axis=1时:

pd.concat([ser_obj1, ser_obj2, ser_obj3], axis=1)

结果为:

     0  1   2
0   2.0 NaN NaN
1   5.0 NaN NaN
2   9.0 NaN NaN
3   1.0 NaN NaN
4   6.0 NaN NaN
5   NaN 1.0 NaN
6   NaN 8.0 NaN
7   NaN 1.0 NaN
8   NaN 6.0 NaN
9   NaN NaN 8.0
10  NaN NaN 5.0
11  NaN NaN 0.0

二.DataFrame合并

pd.concat([df_obj1, df_obj2])

不指定axis为纵向合并

指定axis = 1为横向合并

pd.concat([df_obj1, df_obj2], axis=1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值