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

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

1. 合并数据集

pandas.merge可根据一个或者多个不同DataFrame中的行连接起来。
pandas.concat可以沿着一条轴将多个对象堆叠到一起。
实例方法combine_first可以将重复数据编接在一起,用一个对象中的值填充另一个对象中的缺失值。

2. 数据风格的DataFrame合并操作

2.1 数据集的合并(merge)或连接(jion)运算时通过一个或多个键将行链接起来的。如果没有指定,merge就会将重叠列的列名当做键,最好显示指定一下。
pd.merge(df1,df2,on='key')
2.2 默认情况下,merge做的是"inner"连接,结果中的键是交集。其他方式有“left”、“right”、“outer”。外连接求取的是键的并集,组合了左连接和右连接。
2.3 都对的的连接是行的笛卡尔积。
2.4 merge的suffixes选项,用于指定附加到左右两个DataFrame对象的重叠列名上的字符串。

3. 索引上的合并

DataFrame有merge和join索引合并。

4. 重塑和轴向旋转

有许多用于重新排列表格型数据的基础运算。这些函数也称作重塑(reshape)或轴向旋转(pivot)运算。
4.1 重塑层次化索引
层次化索引为DataFrame数据的重排任务提供了良好的一致性方式。主要两种功能:
    stack:将数据的列“旋转”为行。
    unstack:将数据的行“旋转”为列。

5. 数据转换

5.1 利用函数或映射进行数据转换
Series的map方法可以接受一个函数或含有映射关系的字典型对象。
5.2 替换值
replace可以由一个带替换值组成的列表以及一个替换值
data.replace([-999,-1000],np.nan)
5.3 重命名轴索引
轴标签也可通函数或映射进行转换,从而得到一个新对象轴还可以被就地修改,而无需新建一个数据结构。
5.4 离散化和面元划分
为了便于分析,连续数据常常被分散化或拆分成“面元”(bin)。
pandas的cut函数
5.5 检测和过滤异常值
异常值的过滤或变换运算很大程度上其实就是数组的运算。

6. 字符串操作

6.1 字符串对象方法
split以逗号分割的字符串可以拆分成数段。
字符串“::”的jion方法以冒号分隔符的形式连接起来。
6.2 正则表达式
描述一个或多个空白符的regex是\s+
创建可重用的regex对象:
regex = re.complie('\s+')
regex.split(text)
6.3 pandas中矢量化的字符串函数
实现矢量化的元素获取操作:要么使用str.get,要么使用str属性上使用索引。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习从入门到成神

数据库闭包和候选码求解方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

791
来自专栏yw的数据分析

data.table包使用应该注意的一些细节

  注意默认nThread=getDTthreads(),即使用所有能用的核心,但并不是核心用的越多越好,本人亲自测试的情况下,其实单核具有较强的性能,只有在数...

551
来自专栏Python爬虫与算法进阶

萌新刷题(十一)有效数字

题目 给定一个字符串,验证其是否为数字。 样例 "0" => true " 0.1 " => true "abc" => false "1 a" => ...

3227
来自专栏Java架构沉思录

如何优雅地过滤敏感词

敏感词过滤功能在很多地方都会用到,理论上在Web应用中,只要涉及用户输入的地方,都需要进行文本校验,如:XSS校验、SQL注入检验、敏感词过滤等。今天着重讲讲如...

511
来自专栏java达人

哈希表

哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接...

1657
来自专栏代码世界

Python之递归函数

递归函数 初识递归函数 递归函数的定义:在一个函数里再调用这个函数本身 Python为了考虑保护内存占用情况,有一个递归深度的限制。 探究递归的默认最大深度: ...

2606
来自专栏软件开发 -- 分享 互助 成长

散列表(哈希表)

序言: 如果将一系列的记录按照关键字的某种函数存储,那么在查找某个数据的时候就可以直接通过关键字计算出来了,而不在需要“比较”,这样会非常高效,这就是散列技术。...

1738
来自专栏数据小魔方

左右用R右手Python9——字符串合并与拆分

在文本处理和数据清洗阶段,对字符串或者字符型变量进行分割、提取或者合并虽然谈不上什么高频需求,但是往往也对很重要的。 接下来跟大家大致盘点一下在R语言与Pyh...

3225
来自专栏java学习

面试题33(关于局部变量的理解?)

如下代码的 输出结果是什么? public class Test { public int aMethod() { static int i = 0; ...

2576
来自专栏青青天空树

取随机数

  常用于去随机数的函数为rand()(在stdlib.h头文件中,不同的编译器可能有不同),但是实际在使用这个函数时却发现每次程序运行产生的数都是一样的,这是...

692

扫码关注云+社区