数据规整化:清理、转换、合并、重塑

优采云 发布时间: 2020-08-21 05:09

  数据规整化:清理、转换、合并、重塑

  数据剖析和建模方面的大量编程工作都是用在数据打算上的:加载、清理、转换以及塑造。有时候,存放在文件或数据库中的数据并不能满足你的数据处理应用的要求。许多人都选择使用通用编程语言(如python、perl、R或java)或UNIX文本处理工具(sed或awk)对数据格式进行专门处理。幸运的是,pandas和python标准库提供了一组中级的、灵活的、高效的核心函数和算法,它们让你就能轻松地将数据规整化为正确的方式。

  1. 合并数据集

  pandas对象中的数据可以通过一些外置的方法进行合并:pandas.merge、pandas.concat、combine_first。我们分别对它们进行讲解,并给出一些事例。

  1.1 数据库风格的DataFrame合并

  数据集的合并(merge)或联接(join)运算是通过一个或多个键将行链接上去的。要注意区别的是:多对一的合并和多对多的合并(多对多联接形成的是行的笛卡尔积。由于左侧的DataFrame有3个”b”行,右边的有2个,所以最终结果中就有6个”b”行)

  你须要注意的是,默认情况下,merge做的是”inner”连接;结果中的键是交集。其他方法还有”left”、”right”、以及”outer”。外联接求取的是键的并集,组合了左联接和右联接的疗效:

  要依据多个键进行合并,传入一个由列名组成的列表即可:

  1.2 轴向联接

  1.另一种数据合并运算也被叫做联接、绑定或堆叠。Numpy有一个用于合并原创Numpy链表的concatenation函数。调用concat可以将值和索引黏合在一起,默认情况下,concat是在axis=0(对应的是行)上工作的,最终形成一个新的series。如果传入axis=1,则结果都会弄成一个DataFrame(axis=1是对应列)。

  2.传入join=’inner’即可得到它们的交集;你也可以通过join_axes指定要在其他轴上使用的索引

  2. 重塑和轴向旋转

  2.1 重塑层次化索引

  层次化索引为DataFrame数据的重排任务提供了一种具有良好一致性的形式。主要功能有二:

  1. stack:将数据的列”旋转”为行。

  2. unstack:将数据的行”旋转”为列。

  (未完待续……..)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线