• pandas 之 concat


    本文摘自:http://pandas.pydata.org/pandas-docs/stable/merging.html

    前提:

    ide:

    liuqian@ubuntu:~$ ipython 

    准备:

    In [1]: import pandas as pd

    In [2]: df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], ...: 'B': ['B0', 'B1', 'B2', 'B3'], ...: 'C': ['C0', 'C1', 'C2', 'C3'], ...: 'D': ['D0', 'D1', 'D2', 'D3']}, ...: index=[0, 1, 2, 3]) ...: In [3]: df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'], ...: 'B': ['B4', 'B5', 'B6', 'B7'], ...: 'C': ['C4', 'C5', 'C6', 'C7'], ...: 'D': ['D4', 'D5', 'D6', 'D7']}, ...: index=[4, 5, 6, 7]) ...: In [4]: df3 = pd.DataFrame({'A': ['A8', 'A9', 'A10', 'A11'], ...: 'B': ['B8', 'B9', 'B10', 'B11'], ...: 'C': ['C8', 'C9', 'C10', 'C11'], ...: 'D': ['D8', 'D9', 'D10', 'D11']}, ...: index=[8, 9, 10, 11]) ...: In [4]: frames = [df1, df2, df3] In [5]: result = pd.concat(frames)
    , 11]) ...: In [5]: frames = [df1, df2, df3] # 不要忘了
    , 11]) ...: In [4]: frames = [df1, df2, df3] In [5]: result = pd.concat(frames)

    语法:

    pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

    实例1:

    In [6]: result = pd.concat(frames)    # 等价于 result = df1.append([df2, df3])

    In [7]: result = pd.concat(frames, axis=1)

    实例2:

    In [8]: result = pd.concat(frames, keys=['x', 'y', 'z'])

    In [9]: result = pd.concat(frames, keys=['x', 'y', 'z'], axis=1)

    实例3:

    In [10]: df4 = pd.DataFrame({'B': ['B2', 'B3', 'B6', 'B7'],
       ...:                   'D': ['D2', 'D3', 'D6', 'D7'],
       ...:                   'F': ['F2', 'F3', 'F6', 'F7']},
       ...:                  index=[2, 3, 6, 7])
       ...: 
    In [11]: result = pd.concat([df1, df4], axis=1, join='inner')

    In [12]: result = pd.concat([df1, df4], join='inner')

    实例4:

    In [13]: result = pd.concat([df1, df4], axis=1, join_axes=[df1.index])

    In [14]: result = pd.concat([df1, df4],  join_axes=[df1.columns])

    实例5:

    In [15]: result = pd.concat([df1, df4], ignore_index=True)   # 等价于 df1.append(df4, ignore_index=True)

    In [16]: result = pd.concat([df1, df4], axis=1, ignore_index=True)

     

    总结:

     1, axis=0, 对行操作    axis=1, 对列操作
    2. join='outer', 连接各个数据 join='inner',只取各个数据的公共部分
    3.
    join_axes=[df1.index], 保留与df1的行标签一样的数据,配合axis=1一起用
    join_axes=[df1.columns],保留与df1的列标签一样的数据,不要添加axis=1
    4. ignore_index=False, 保留原索引 ignore_index=True,忽略原索引并生成新索引
    5.
    keys=
    ['x', 'y', 'z'] 对组成的每个df重新添加个索引
  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/liuq/p/7019262.html
Copyright © 2020-2023  润新知