Python数据分析基础(五)——数据规整

数据规整是数据处理的前提条件。pandas和Python标准库提供了一组高级、灵活、高效的核心函数和算法。


pandas merge函数的参数

参数 说明
left 参与合并的左侧DataFrame
right 参与合并的右侧DataFrame
how “inner”、“outer”、“left”、“right”其中之一。默认为“inner”
on 用于连接的列名
left_on 左侧DataFrame中用作连接键的列
right_on 右侧DataFame中用作连接键的列
left_index 将左侧的行索引用作其连接键
right_index 类似于left_index
sort 根据连接键对合并后的数据进行排序,默认为True。
suffixes 字符串值元组,用于追加到重叠列名的末尾,默认为('_x', '_y')。
copy 设置为False,可以在某些特殊情况下避免将数据复制到结果数据结构中。默认是复制


pandas concat函数的参数

参数 说明
objs 参与连接的pandas对象的列表或字典。唯一必需的参数
axis 指明连接的轴向,默认为0
join “inner”、“outer”其中之一,默认为“outer”。
join_axes 指明用于其他n-1轴的索引,不执行并集/交集运算
keys 与连接对象有关的值,用于形成连接轴向上的层次化索引。
levels 指定用作层次化索引各个级别上的索引,如果设置了keys的话
names 用于创建分层级别的名称,如果设置了keys和(或)levels的话
verify_integrity 检查结果对象新轴上的重复情况,如果发现则引发异常。默认(False)允许重复
ignore_index 不保留连接轴上的索引,产生一组新索引range(total_length)


Python内置的字符串方法

方法 说明
count 返回子串在字符串中的出现次数(非重叠)
endswith、startswith 如果字符串以某个后缀结尾(以某个前缀开头),则返回True
join 将字符串用作连接其他字符串序列的分隔符
index 如果在字符串中找到子串,则返回子串第一个字符所在的位置。如果没有找到,则引发ValueError
find 如果在字符串中找到子串,则返回第一个发现的子串的第一个字符所在的位置。如果没有找到,则返回-1
rfind 如果在字符串中找到子串,则返回最后一个发现的子串的第一个字符所在的位置。如果没有找到,则返回-1
replace 用另一个字符串替换指定子串
strip、rstrip、lstrip 去除空白符(包括换行符)
split 通过指定的分隔符将字符串拆分为一组子串
lower、upper 分别将字母字符转换为小写或大写
ljust、rjust 用空格(或其他字符)填充字符串的空白以返回符合最低宽度的字符串


正则表达式方法

方法 说明
findall、finditer 返回字符串中所有的非重叠匹配模式。findall返回的是由所有模式组成的列表,而finditer则通过一个迭代器逐个返回
match 从字符串起始位置匹配模式,还可以对模式各部分进行分组。如果匹配到模式,则返回一个匹配项对象,否则返回None
search 扫描整个字符串以匹配模式。
split 根据找到的模式将字符串拆分为数段
sub、subn 将字符串中所有的(sub)或前n个(subn)模式替换为指定表达式。


矢量化的字符串方法

方法 说明
cat 实现元素级的字符串连接操作,可指定分隔符
contains 返回表示各字符串是否含有指定模式的布尔型数组
count 模式的出现次数
endswith、startswith 以某个模式开始或结束
findall 计算各字符串的模式列表
get 获取各元素的第i个字符
join 根据指定的分隔符将Series中各元素的字符串连接起来
len 计算各字符串的长度
lower、upper 转换大小写
match 根据指定的正则表达式对各个元素执行re.match
pad 在字符串的左边、右边或左右两边添加空白字符
center 相当于pad(side='both')
repeat 重复值
replace 用指定字符串替换找到的模式
slice 对Series中的各个字符串进行子串截取
split 根据分隔符或正则表达式对字符串进行拆分
strip、rstrip、lstrip 去除空白符,包括换行符


参考文献:

利用Python进行数据分析.    Wes McKinney.    唐学韬译

Python数据分析基础(五)——数据规整