zoukankan      html  css  js  c++  java
  • Pandas 的轴向连接 concat

    在pandas里面,另一种数据何必运算也被称为连接(concatenation)、绑定(binding)或堆叠(stacking)。

    Numpy的轴向连接, concatenation

    Numpy有一个用于合并原始Numpy数组的concatenation函数:

    In [4]: arr = np.arange(12).reshape((3, 4))
    
    In [5]: arr
    Out[5]:
    array([[ 0,  1,  2,  3],
           [ 4,  5,  6,  7],
           [ 8,  9, 10, 11]])
    In [7]: np.concatenate([arr, arr], axis=1)
    Out[7]:
    array([[ 0,  1,  2,  3,  0,  1,  2,  3],
           [ 4,  5,  6,  7,  4,  5,  6,  7],
           [ 8,  9, 10, 11,  8,  9, 10, 11]])

    pandas --Series--concat函数

    需要考虑的问题:

      1. 如果各对象其他轴上的索引不同, 那些轴应该是做并集还是交集?

      2. 结果对象中的分组需要各不相同吗?

      3. 用于连接的轴重要吗?

    用concat将值和索引粘合在一起:

    默认情况下, concat是在axis=0上工作。如果传入传入axis=1, 则结果就会变成一个DataFrame

    求交集

     

    指定索引名称:join_axes

    如果参与连接的片段中区分不开。假设你想要在连接轴上创建一个层次化索引。使用keys参数即可达到这个目的:

    如果使用unstack()方法呢

    concat axis=1方向

     如果沿着axis=1对Series进行合并, 则keys就会成为DataFrame的列头:

    DataFrame的对象也是一样:

     最后考虑一个问题,行索引, 也就是index

    In [2]: from pandas import Series, DataFrame                                                                                                                                                                                                    In [3]: import pandas as pd                                                                                                                                                                                                                     In [4]: import numpy as np                                                                                                                                                                                                                      In [5]: df1 = DataFrame(np.random.randn(3, 4), columns=[i for i in "abcd"])                                                                                                                                                                     In [6]: df2 = DataFrame(np.random.randn(2, 3), columns=[i for i in "bda"])                                                                                                                                                                      In [7]: df1                                                                                                             Out[7]:                                                                                                                           a         b         c         d                                                                               0 -1.688676  0.839406 -0.196775  0.864225                                                                               1 -0.145041  1.273715  0.532980  0.648970                                                                               2  0.021084 -1.824193  0.177116 -1.137237                                                                                                                                                                                                       In [8]: df2                                                                                                             Out[8]:                                                                                                                           b         d         a                                                                                         0 -0.418477  0.486801  0.700591                                                                                         1 -1.543646  0.506380  1.407013                                                                                                                          
    代码

    concat函数的参数

  • 相关阅读:
    [LOJ2288][THUWC2017]大葱的神力:搜索+背包DP+费用流+随机化
    [省选练习]S
    [省选练习]P
    动态淀粉质(划掉)题单&简要题解
    [CF1093G]Multidimensional Queries:线段树
    [BZOJ3199][SDOI2013]escape:半平面交
    计算几何模板
    [洛谷P5106]dkw的lcm:欧拉函数+容斥原理+扩展欧拉定理
    [POJ1637]Sightseeing tour:混合图欧拉回路
    重复旋律:后缀数组+后缀自动机
  • 原文地址:https://www.cnblogs.com/renfanzi/p/6484438.html
Copyright © 2011-2022 走看看