pandas实现数据concat拼接的示例代码

Written by

in

文章目录
  • 使用某种方式合并方式(inner/outer)、沿着某个轴向(axis=0/1)、把多个Pandas对象(DataFrame/Seires)拼接成一个。 pandas.concat(objs, *, axis=0, join=’outer’, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=None) 返回值: 当沿索引(axis=0)连接所有 Series 时,返回一个 Series。 当 objs 中包含至少一个 DataFrame 时,返回一个 DataFrame。 当沿列(axis=1)连接时,返回一个 DataFrame。 参数说明: objs:需要连接的对象(如 DataFrame 或 Series)的列表或字典。 axis:指定连接轴。{0/’index’, 1/’columns’}, 默认0。axis=0:沿行方向连接(垂直堆叠)。axis=1:沿列方向连接(水平堆叠)。 join:指定连接方式,{‘inner’, ‘outer’},默认为 ‘outer’。join=‘outer’:外连接,保留所有索引(默认)。join=‘inner’:内连接,只保留共有索引。 ignore_index:是否忽略原始索引并生成新的整数索引。bool,默认为 False。ignore_index=True:忽略原始索引,生成新的整数索引。ignore_index=False:保留原始索引。 keys:为连接后的对象添加外层索引(多层索引)。list 或 tuple。 levels:与 keys 参数配合使用,指定多层索引的具体层级。list 或 tuple。 names:为多层索引的层级命名。list 或 tuple。 verify_integrity:是否检查新索引是否有重复。bool,默认为 False。 sort:是否对非连接轴进行排序。bool,默认为 False。 copy:是否复制数据。bool,默认为 True。
  • 第1个DataFrame: import pandas as pd df1 = pd.DataFrame({‘A’: [‘A0’, ‘A1’, ‘A2’, ‘A3’], ‘B’: [‘B0’, ‘B1’, ‘B2’, ‘B3’], ‘C’: [‘C0’, ‘C1’, ‘C2’, ‘C3’], ‘D’: [‘D0’, ‘D1’, ‘D2’, ‘D3’]}) 查看数据: 第2个DataFrame: df2 = pd.DataFrame({‘B’: [‘B4’, ‘B5’, ‘B6’, ‘B7’], ‘C’: [‘C4’, ‘C5’, ‘C6’, ‘C7’], ‘D’: [‘D4’, ‘D5’, ‘D6’, ‘D7’], ‘E’: [‘E4’, ‘E5’, ‘E6’, ‘E7’]}) 查看结果:
  • 目录
    • 语法
    • 示例:使用pandas.concat合并数据
      • 默认的concat:参数axis=0,join=‘outer’,ignore_index=False
      • 使用ignore_index=True参数可以忽略原来的索引
      • 使用join='inner’参数过滤掉不匹配的列
      • 使用axis=1相当于添加新列
        • 添加一列Series
        • 添加多列Series
        • concat的要合并的对象参数可以只包含Series列表
        • concat的要合并的对象参数DataFrame和Series顺序可以混合
      • 一行一行给DataFrame添加数据

      使用场景:批量拼接相同格式的excel、给DataFrame添加行、给DataFrame添加列等。

      使用某种方式合并方式(inner/outer)、沿着某个轴向(axis=0/1)、把多个Pandas对象(DataFrame/Seires)拼接成一个。

      pandas.concat(objs, *, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=None)
      

      返回值

      • 当沿索引(axis=0)连接所有 Series 时,返回一个 Series。
      • 当 objs 中包含至少一个 DataFrame 时,返回一个 DataFrame。
      • 当沿列(axis=1)连接时,返回一个 DataFrame。

      参数说明

      • objs:需要连接的对象(如 DataFrame 或 Series)的列表或字典。
      • axis:指定连接轴。{0/’index’, 1/’columns’}, 默认0。axis=0:沿行方向连接(垂直堆叠)。axis=1:沿列方向连接(水平堆叠)。
      • join:指定连接方式,{‘inner’, ‘outer’},默认为 ‘outer’。join=‘outer’:外连接,保留所有索引(默认)。join=‘inner’:内连接,只保留共有索引。
      • ignore_index:是否忽略原始索引并生成新的整数索引。bool,默认为 False。ignore_index=True:忽略原始索引,生成新的整数索引。ignore_index=False:保留原始索引。
      • keys:为连接后的对象添加外层索引(多层索引)。list 或 tuple。
      • levels:与 keys 参数配合使用,指定多层索引的具体层级。list 或 tuple。
      • names:为多层索引的层级命名。list 或 tuple。
      • verify_integrity:是否检查新索引是否有重复。bool,默认为 False。
      • sort:是否对非连接轴进行排序。bool,默认为 False。
      • copy:是否复制数据。bool,默认为 True。

      第1个DataFrame:

      import pandas as pd
      
      df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']})
      

      查看数据:

      在这里插入图片描述

      第2个DataFrame:

      df2 = pd.DataFrame({'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7'], 'E': ['E4', 'E5', 'E6', 'E7']})
      

      查看结果:

      在这里插入图片描述

      pd.concat([df1, df2])
      

      合并后的结果:

      在这里插入图片描述

      pd.concat([df1, df2], ignore_index=True)
      

      合并后的数据:

      在这里插入图片描述

      pd.concat([df1, df2], ignore_index=True, join='inner')
      

      合并后的数据:

      在这里插入图片描述

      DataFrame:

      在这里插入图片描述

      再构造一个Series:

      s1 = pd.Series(list(range(10, 14)), name='F')
      

      在这里插入图片描述

      按列合并:

      pd.concat([df1, s1], axis=1)
      

      合并后的结果:

      在这里插入图片描述

      DataFrame:

      在这里插入图片描述

      第1个Series:

      在这里插入图片描述

      第2个Series:

      s2 = df1.apply(lambda x : x['D'] + '_G', axis=1)
      s2.name = 'G'
      

      在这里插入图片描述

      合并1个DataFrame和2个Series:

      pd.concat([df1, s1, s2], axis=1)
      

      合并后的结果:

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      合并两个Series:

      pd.concat([s1, s2], axis=1)
      

      合并后的结果:

      在这里插入图片描述

      要合并的DataFrame:

      在这里插入图片描述

      要合并的Series:

      在这里插入图片描述

      要合并的Series:

      在这里插入图片描述

      合并数据:

      pd.concat([s1, df1, s2], axis=1)
      

      合并后的结果:

      在这里插入图片描述

      先生成一个空的DataFrame:

      df = pd.DataFrame(columns=['S'])
      

      在这里插入图片描述

      利用concat可以接受对象列表的特点,进行拼接:

      pd.concat([pd.DataFrame([i], columns=['S']) for i in range(6)], ignore_index=True)
      

      拼接后的结果:

      在这里插入图片描述

      到此这篇关于pandas实现数据concat拼接的示例代码的文章就介绍到这了,更多相关pandas concat拼接内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

      您可能感兴趣的文章:

      • pandas.concat实现DataFrame竖着拼接、横着拼接方式
      • Pandas拼接concat使用方法

      站内搜索