python数据分析和数据挖掘之pandas模块

一、pandas模块

pandas(Python Data Analysis Library)是基于numpy的数据分析模块,提供了大量标准数据模型和高效操作大型数据集所需要的工具,可以说pandas是使得Python能够成为高效且强大的数据分析环境的重要因素之一。它最主要的两个数据结构是series和DataFrame。本文主要介绍series的一些操作。

二、series命令及其相关功能介绍

Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型

#pandas的series的数据结构
pandas.Series( data, index, dtype, name, copy)
  • data:一组数据(ndarray 类型)。
  • index:数据索引标签,如果不指定,默认从 0 开始。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称。
  • copy:拷贝数据,默认为 False。

下面我将介绍pandas的series的方法:

方法 功能描述
pandas.series(list,index=[]) 创建值
S1.value 查看值
S1[‘index值’] 查看索引index值
S1[条件] 根据索引取值
S.to_dict() 把series转换成字典输出
pandas.isnull(S1) 判断series的元素是否为空值
S1.name=‘字符’ 给series赋予名字
S1.index.name=‘demo_index’ 给索引取名字
series.isnull() 判断某个列表中是否含有空值
series.is_unique 判断某个系列中的值是否存在重复
series.value_counts() 统计某个系列里某个元素的出现次数

三、数据框的语法及其功能描述

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

#DataFrame的数据结构
pandas.DataFrame( data, index, columns, dtype, copy)
  • data:一组数据(ndarray、series, map, lists, dict 等类型)。
  • index:索引值,或者可以称为行标签。
  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
  • dtype:数据类型。
  • copy:拷贝数据,默认为 False。

下面我将介绍pandas的DataFrame的方法:

语句 功能描述
pandas。FDataFrame(data,columns=[],index=[]) 创建数据框
pd.read_csv() 将CSV文件的数据导入到内存中,快速构建数据库
pd.concat() 按横向或纵向合并两个pandas数据结构
pd.get_dummies() 将类别变量转变为独热编码
DataFrame.mean() 按行或按列计算平均值
DataFrame.dropna() 删除所有缺失数据的行或列
DataFrame.drop_duplicates 删除所有重复的行
DataFrame.head() 默认返回数据框中前五行
DataFrame.tail() 默认返回数据框中最后五行

四、pandas的CSV文件

CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

函数 描述
read_csv(path) 读取CSV文件
to_string() 将文件变成字符流
to_csv() 将其他数据结构转成CSV文件
head(n) 读取前面的 n 行,如果不填参数 n ,默认返回 5 行
tail( n ) 用于读取尾部的 n 行,如果不填参数 n ,默认返回 5 行
info() 返回表格的一些基本信息

五、pandas的json

JSON(JavaScript Object Notation,JavaScript 对象表示法),是存储和交换文本信息的语法,类似 XML。

函数 描述
read_json() 读取json文件
to_string() 将文件变成字符流
json_normalize() 将内嵌的数据完整的解析出来

六、## pandas数据清洗

函数 描述 例程
cat函数 主要用于字符串的拼接 df[“姓名”].str.cat(df[“家庭住址”],sep=’-’*3)
contains函数 主要用于判断某个字符串是否包含给定字符 df[“家庭住址”].str.contains(“广”)
startswith函数 主要用于判断某个字符串是否以…开头 df[“姓名”].str.startswith(“黄”)
endswith函数 主要用于判断某个字符串是否以…结尾 df[“英文名”].str.endswith(“e”)
endswith函数 主要用于计算给定字符在字符串中出现的次数 df[“电话号码”].str.count(“3”)
get函数 主要用于获取指定位置的字符串 df[“姓名”].str.get(-1)
len函数 主要用于计算字符串长度 df[“性别”].str.len()
upper函数 主要用于英文大小写转换 df[“英文名”].str.upper()
lower函数 主要用于英文大小写转换 df[“英文名”].str.lower()
pad+side参数/center函数 主要用于在字符串的左边、右边或左右两边添加给定字符 df[“家庭住址”].str.center(10,fillchar="*")
repeat函数 主要用于重复字符串几次 df[“性别”].str.repeat(3)
slice_replace函数 主要用于使用给定的字符串,替换指定的位置的字符 df[“电话号码”].str.slice_replace(4,8,"*"*4)
replace函数 主要用于将指定位置的字符,替换为给定的字符串 df[“身高”].str.replace(":","-")
split方法+expand参数 主要用于将一列扩展为好几列 df[[“身高描述”,“final身高”]] = df[“身高”].str.split(":",expand=True)
strip、rstrip、lstrip函数 主要用于去除空白符、换行符 df[“姓名”] = df[“姓名”].str.strip()
extract、extractall函数 主要用于接受正则表达式,抽取匹配的字符串(一定要加上括号) df[“身高”].str.extractall("([a-zA-Z]+)")

1.Pandas 清洗空值

如果我们要删除包含空字段的行,可以使用 dropna() 方法,语法格式如下:

#清洗空值
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
  • axis:默认为 0,表示逢空值剔除整行,如果设置参数 axis=1 表示逢空值去掉整列。
  • how:默认为 ‘any’ 如果一行(或一列)里任何一个数据有出现 NA 就去掉整行,如果设置 how=‘all’ 一行(或列)都是 NA 才去掉这整行。
  • thresh:设置需要多少非空值的数据才可以保留下来的。
  • subset:设置想要检查的列。如果是多个列,可以使用列名的 list 作为参数。
  • inplace:如果设置 True,将计算得到的值直接覆盖之前的值并返回 None,修改的是源数据。

Pandas使用 mean()median()mode() 方法计算列的均值(所有值加起来的平均值)、中位数值(排序后排在中间的数)和众数(出现频率最高的数)。

2.Pandas 清洗格式错误数据

数据格式错误的单元格会使数据分析变得困难,甚至不可能。我们可以通过包含空单元格的行,或者将列中的所有单元格转换为相同格式的数据。

3.Pandas 清洗错误数据

数据错误也是很常见的情况,我们可以对错误的数据进行替换或移除。

4.Pandas 清洗重复数据

如果我们要清洗重复数据,可以使用 duplicated()drop_duplicates() 方法。如果对应的数据是重复的,duplicated() 会返回 True,否则返回 False。

你可能感兴趣的:(数据挖掘,数据分析,python)