您的位置:首页 > 其它

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

2016-08-05 16:13 393 查看
数据分析和建模方面的大量编程工作都是用在数据准备上的:加载、清理、转换以及重塑。有时候,存放在文件或数据库中的数据并不能满足你的数据处理应用的要求。许多人都选择使用通用编程语言(如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:将数据的行”旋转”为列。

(未完待续……..)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐