python numpy 重复行合并_python numpy和pandas中数组的合并、拉直和重塑代码分享

numpy和pandas中数组的合并、拉直和重塑实例合并在numpy中合并两个arraynumpy中可以通过concatenate,参数axis=0表示在垂直方向上合并两个数组,等价于np.vstack;参数axis=1表示在水平方向上合并两个数组,等价于np.hstack。垂直方向:np.concatenate([arr1,arr2],axis=0)np.vstack([arr1,arr2])水...
摘要由CSDN通过智能技术生成

numpy和pandas中数组的合并、拉直和重塑实例

合并

在numpy中合并两个array

numpy中可以通过concatenate,参数axis=0表示在垂直方向上合并两个数组,等价于np.vstack;参数axis=1表示在水平方向上合并两个数组,等价于np.hstack。

垂直方向:

np.concatenate([arr1,arr2],axis=0)

np.vstack([arr1,arr2])

水平方向:

np.concatenate([arr1,arr2],axis=1)

np.hstack([arr1,arr2])

import numpy as np

import pandas as pd

arr1=np.ones((3,5))

arr1

Out[5]:

array([[ 1., 1., 1., 1., 1.],

[ 1., 1., 1., 1., 1.],

[ 1., 1., 1., 1., 1.]])

arr2=np.random.randn(15).reshape(arr1.shape)

arr2

Out[8]:

array([[-0.09666833, 1.47064828, -1.94608976, 0.2651279 , -0.32894787],

[ 1.01187699, 0.39171167, 1.49607091, 0.79216196, 0.33246644],

[ 1.71266238, 0.86650837, 0.77830394, -0.90519422, 1.55410056]])

np.concatenate([arr1,arr2],axis=0) #在纵轴上合并

Out[9]:

array([[ 1. , 1. , 1. , 1. , 1. ],

[ 1. , 1. , 1. , 1. , 1. ],

[ 1. , 1. , 1. , 1. , 1. ],

[-0.09666833, 1.47064828, -1.94608976, 0.2651279 , -0.32894787],

[ 1.01187699, 0.39171167, 1.49607091, 0.79216196, 0.33246644],

[ 1.71266238, 0.86650837, 0.77830394, -0.90519422, 1.55410056]])

np.concatenate([arr1,arr2],axis=1) #在横轴上合并

Out[10]:

array([[ 1. , 1. , 1. , ..., -1.94608976,

0.2651279 , -0.32894787],

[ 1. , 1. , 1. , ..., 1.49607091,

0.79216196, 0.33246644],

[ 1. , 1. , 1. , ..., 0.77830394,

-0.90519422, 1.55410056]])

在pandas中合并两个DataFrame

pandas中通过concat方法实现合并,指定参数axis=0 或者 axis=1,在纵轴和横轴上合并两个数组。与numpy不同,这里的两个dataframe要放在一个列表中,即[frame1,frame2]

from pandas import DataFrame

frame1=DataFrame([[1,2,3],[4,5,6]])

frame2=DataFrame([[7,8,9],[10,11,12]])

pd.concat([frame1,frame2], ignore_index=True) # 合并的数组是一个可迭代的列表。

Out[25]:

0 1 2

0 1 2 3

1 4 5 6

0 7 8 9

1 10 11 12

pd.concat([frame1,frame2], axis=1, ignore_index=True)

Out[27]:

0 1 2 3 4 5

0 1 2 3 7 8 9

1 4 5 6 10 11 12

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值