zoukankan      html  css  js  c++  java
  • 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重新添加个索引
  • 相关阅读:
    浅谈Dynamic 关键字系列之三(下):ExpandoObject,DynamicObject,DynamicMetaObject
    完全详解Silverlight 下载文件
    在内部循环中Continue外部循环
    浅谈Dynamic 关键字系列之四:dynamic为什么比反射快
    Android学习笔记(三)基础知识(2)
    Android学习笔记(一) 使用选择部件
    Android学习笔记(四)时钟、时间
    每周一道数据结构(三)树、二叉树、最优二叉树
    Linux内核设计与实现笔记(二) 内存管理、进程地址空间
    Windows下Hadoop eclipse开发平台搭建
  • 原文地址:https://www.cnblogs.com/liuq/p/7019262.html
Copyright © 2011-2022 走看看